Wörter mit UDR senden

Gast #283433
Lesenswert?

Hallo!

Ich möchte ein Integer-Register auf den UART ausgeben.
Also UDR=i; z.B.

Das Integerregister ist aber 16 Bit lang und enthält auch so große
Zahlen, dass 8 Bit nicht ausreichen.
Im Terminalprogramm sehe ich, dass nur ein Byte gesendet wird.

Wie kann ich auf einfach Weise 2 Byte senden?

Habe im AVRGCC-Tutorial nichts dazu gefunden.

Gruß
Markus
Gast #283434
Lesenswert?

Da das UDR nur 8 Bit breit ist, musst Du die beiden Bytes nacheinander
senden.

UDR = i; // Low-Byte senden
loop_until_bit_is_set(UCSRA, UDRE); // Warten bis fertig gesednet
UDR = (i >> 8); // High-Byte senden

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