Gast schrieb:
> Hallo zusammen,
>
> wird das UDR auch beim Abfragen zb:
>
> gelöscht? Habe nichts auf der Leitung empfangen, bis ich die Daten in
> einen Buffer geschrieben habe. Dann konnte ich die Abfrage erst machen.
>
1 | > buffer = UDR0;
|
2 | > if(buffer == xy)
|
3 | >
|
>
> Ist meine Vermutung da richtig?
Ja.
Im Datenblatt wird ausdrücklich davor gewarnt, mehrfach auf das Register
zuzugreifen. Bei jedem Zugriff ändert sich der FIFO Zustand.
Selbst wenn nicht: Wie lange soll denn die UART das empfangene Byte im
UDR Register vorhalten und woher weißt du, dass bei
i = UDR;
j = UDR;
beidesmal der selbe Wert ausgelesen wird. In der Zeit zwischen dem
ersten Auslesen und dem zweiten Auslesen könnte ja auch ein neues Byte
empfangen worden sein.