Titelbild Mikrocontroller

15.7.2. Empfangen von Frames mit 9 Datenbits

Wenn 9-bit Zeichen verwendet werden (UCSZ = 7) muss das neunte Bit aus dem RXB8 Bit im UCSRB Register gelesen werden bevor das Low-Byte aus dem UDR gelesen wird. Diese Regel gilt auch für das FE, DOR und PE Status Flag. Erst den Status von UCSRA lesen, dann die Daten vom UDR. Das Lesen der UDR I/O Speicherzelle verändert den Status des Empfangsbuffer FIFO und somit werden auch die TXB8, FE, DOR und PE Bits, die im FIFO gespeichert sind, verändert.

Das folgende Programmbeispiel zeigt eine einfache USART Empfangsfunktion, das die Statusbits und das 9-bit Zeichen handhabt.
Codebeispiel Empfang 9 Bits

Codebeispiel Empfang 9 Bits



Die Empfangsfunktion liest alle I/O Register in das Register File bevor eine weitere Berechnung erfolgt. Das gibt eine optimale Ausnutzung des Empfangsbuffers, da der Empfangsbuffer durch das Auslesen geleert wird und daher so früh wie möglich für die Aufnahme neuer Daten bereit steht.
Impressum