Baudrate UART

Gast #436908
Lesenswert?
• ▲
▼
In das (wahrscheinlich) 8-bit-Register UBRR0H wird das obere Byte vom 
(wahrscheinlich) 16-bit-Register UBRR geladen. In das Register UBRR0L 
die andere Hälfte.
>>8 verschiebt um 8 bits nach links und (unsigned char) läßt nur die unteren 8 bit 
übrig.
Gast #437323
Lesenswert?
• ▲
▼
Das sind zwei 8-Bit-Register (UBRR0H und UBRR0L), macht zusammen 16 Bit. 
Dass von den 16 Bit nur 12 verwendet werden, ist in dem Falle Wurscht, 
da die 4 MSB von UBRR0H nicht anderweitig belegt sind und eh mit Nullen 
beschrieben werden. Der Wert von UBRR muss dazu natürlich im gültigen 
Bereich liegen.
Gast #437820
Lesenswert?
• ▲
▼
Im Prinzip richtig, bei einigen AVRs (Mega16/8515/8535) teilen sich das 
UBRRH und UCSRC dieselbe I/O-Adresse. Trotzdem muss das MSB beim Zugriff 
auf UBRRH 0 geschrieben werden, so dass sich am Prinzip nichts ändert 
(also 4 MSB 0). Da im ursprünglichen Posting aber von UBRR0H und UBRR0L 
die Rede ist, handelt es sich offensichtlich um einen AVR mit zwei 
UARTs. Und bei denen trifft die Doppelbelegung nicht zu.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren