Skocz do zawartości

ATmega16-SiemensC35 Prawdopodobnie błąd w kodzie.


1107halil

Pomocna odpowiedź

Witam,
mam problem z komunikacją ATmegi16 z Siemensem C35. W elektronice dopiero raczkuje i nie bardzo radze sobie z rozwiązywaniem problemów, które wykraczają poza schematy. Przypuszczam, że w kodzie znajdują się jakieś oczywiste błędy. Telefon nie odpowiada na żadną komendę AT mimo iż na terminalu kompa wszystko gra. Połączenie uC i telefonu skomplikowane nie jest (Rezystor, dioda Zenera- daruje sobie schemat) więc tutaj powinno być dobrze. Programuje w C, jeżeli ktoś byłby w stanie pomóc to proszę o poprawki w tym języku.

Ważniejsze części kodu:

#define F_CPU 1000000UL
#include <avr/io.h> 
#include <util/delay.h> 
#include <stdio.h> 

void ustaw_USART(void) 
{ 
UBRRH=0; 
UBRRL=2; 
UCSRB =_BV(RXEN)|_BV(TXEN); 
UCSRC|=_BV(URSEL)|_BV(UCSZ1)|_BV(UCSZ0); 
} 

main() 
{ 

ustaw_USART(); 
//..........

while(! (UCSRA&(1<<UDRE)) ); //przykład wysłanie 'A'
  UDR=(unsigned char)'A'; 

//.........

} 

Nie korzystam z zewnętrznego kwarcu. Wewnętrzny powinien (mam nadzieje) ma 1MHz.

Redefiniowałem F_CPU w pliku makefile z 'iluśtam' na 1000000 ale i to nie pomogło.

Nie mam zielonego pojęcia. Kolega z którym buduje ten twór sugeruje wpływ programatora (AVR PROG usb programmer), który może zmieniać F_CPU na 6MHz w przypadku złych ustawień (nie kojarzę jak to działa, dlatego pisze to tak niefachowo)

Link do komentarza
Share on other sites

a jaki masz baud (predkosc transmisji) ? na 1mhz bys musial miec baud od 1200 do 4800 zeby miec blad 0,16%

Na c sie nie znam wiec ci nie pomoge

[ Dodano: 31 Mar 09 04:17 ]

Najlepiej przestaw na zew kwarc np. 8mHz jest bardziej stabilny.

Jak chcesz uzywac wew. generatora to poczytaj tematy na elektrodzie, jest taki rejestr ktory musisz dobrze ustawic inaczej moga wystapic bledy (jak sie nazywa ten rejestr nie pamietam, na elektrodzie napewno znajdziesz)

Link do komentarza
Share on other sites

Dzięki za odpowiedz i przepraszam że odpisuje dopiero teraz. Problem już rozwiązany, rzeczywiście chodziło o kwarc. Wew był inny niż zakładaliśmy. Prawdopodobnie też użyjemy zew żeby zredukować błąd. Był jeszcze problem z wtyczką ale już jest spoko.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.