Problem z WinAVR?

Jun 19, 2005 5 Replies

Witam sredecznie.



Zastanawiam sie dlaczego kompilator WinAVR nie traktuje jednoznacznie takich oto intrukcji:



UCSRC |= (1<<URSEL); UCSRC |= (1<<USBS); UCSRC |= (3<<UCSZ0);



i druga:



UCSRC |= (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);



Przeciez te dwie instrukcje robia to samo, jednak WinAVR ustawia te bity inaczej, a symulator z VMLab zglasza mi taki blad: [PC = $006B, Time = 2.25 ms, {PER}]: USART: Sorry, only 7 and 8 bits supported



Z gory dziekuje za pomoc.


Co to znaczy ustawia inaczej ? Końcowa zawartość UCSRC jest taka sama w obu przypadkach ? Przeglądałeś listingi po kompilacji ?

U¿ytkownik "Zbych" snipped-for-privacy@onet.pl napisa³

Tak, przegladalem listingi po kompilacji i nie ma tam nic na ten temat. Co do wartosci koncowej UCSRC to jestem przekonany iz jest inna poniewaz w pierwszym przypadku wogole nie dziala mi USART, a symulacja zatrzymuje sie wywalajac powyzszy blad.

Dzieki za zainteresowanie.

Sun, 19 Jun 2005 20:45:13 +0200, na pl.misc.elektronika, Piotr napisał(a):

No właśnie robią zupełnie coś innego : UCSRC |= (1<<URSEL); 64: 80 b5 in r24, 0x20 ; 32 66: 80 68 ori r24, 0x80 ; 128 68: 80 bd out 0x20, r24 ; 32 UCSRC |= (1<<USBS); 6a: 80 b5 in r24, 0x20 ; 32 6c: 88 60 ori r24, 0x08 ; 8 6e: 80 bd out 0x20, r24 ; 32 UCSRC |= (3<<UCSZ0); 70: 80 b5 in r24, 0x20 ; 32 72: 86 60 ori r24, 0x06 ; 6 74: 80 bd out 0x20, r24 ; 32 UCSRC |= (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); 76: 80 b5 in r24, 0x20 ; 32 78: 8e 68 ori r24, 0x8E ; 142 7a: 80 bd out 0x20, r24 ; 32

Dostęp do UCSRC masz tylko przy _jednoczesnie_ ustawionym bicie URSEL; więc w pierwszym przypadku przypisania UCSRC |= (1<<USBS); UCSRC |= (3<<UCSZ0); powodują wpis do UBRRH. Drugi przypadek wykonuje zapis prawidłowo.

No to wrzuć ten listing z fragmentem odpowiedzialnym za konfigurację uarta i sprawdź w innym symulatorze (avr studio ?) stan bitów po skonfigurowaniu uarta zamiast pisać, że ci się coś wydaje.

U¿ytkownik "Jurek Szczesiul" snipped-for-privacy@wycin.ep.com.pl> napisa³

Dziekuje serdecznie za pomoc.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required