Hallo zusammen habe nochmal eine Frage zu dem Atmega32 bzw. der
Konfiguration der USART Schnittstelle.
Laut Datenblatt muss man zum schreiben des UBRRH am MSB eine logische
Null haben um auf das UCSRC zu schreiben muss man am MSB eine logische
Eins haben. Die Baudrate wird richtig eingestellt. Aber auf das
C-Register kann ich nicht richtig zugreifen.
1 |
|
2 | UBRRH = UBRRH_VALUE;
|
3 | UBRRL = UBRRL_VALUE;
|
4 |
|
5 |
|
6 | UCSRC = (1 << URSEL) | (1 << USBS) | (3 << UCSZ0);
|
Das gleiche passiert bei folgendem Code
1 | UBRRH = UBRRH_VALUE;
|
2 | UBRRL = UBRRL_VALUE;
|
3 |
|
4 |
|
5 | UCSRC = (1 << URSEL) | (1 << USBS) | (1 << UCSZ1) | (1 << UCSZ0);
|
Damit soll eine Übertragung mit 8 Bit + Zwei Stopbit eingestellt werden.
Aber er macht nur 6 Bit + Stoppbits und zwar für den Rest der Framezeit
(48 µs) =>
8µs Start
+6*4µs Daten (24µs)
+4*4µs Stop (16µs)