Gast
#1271103
Hallo zusammen, vorab, habe gcc tutorial mehr als einmal gelesen und auch in anderen Threads wurde ich nicht fündig. Nun zu meinem Problem: Ich versuche den USART des ATmega32 in gang zu bringen. Mein Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
Die Baudratenbits und die Enable TX, RX Bits werden gesetzt, aber es werden einfach nicht die Bits URSEL, UCSZ0 und UCSZ1 gesetzt. Die auskommentierte Zeile darüber funktioniert genausowenig. Auch die Notation UCSRC |= (1<<URSEL) | (1<<UCSZ0) | (1<<UCSZ1); funktioniert nicht. Soweit ich das verstanden habe, ist das UCSRC und UBRRH Register unter derselben Adresse zu erreichen, deshalb das URSEL Bit. Kann es daran liegen? Wenn ich beim debuggen manuell die Bits in AVR Studio (I/O View) setzte, wird das auch ignoriert, bzw im nächstem Step wieder verworfen. uart_gets(puffer, sizeof(puffer)); ist die Funktion aus dem gcc Tutorial. Ich benutzte AVR Dragon, AVR Studio, JTAG und ATmega32 mit 16 MHz(Fuse Bits sind entsprechend gesetzt, als UBRR Wert habe ich 0xCF). Vielen Dank schonmal für eure Hilfe, mfg Alex