Forum: Compiler & IDEs Wörter mit UDR senden


von Markus Wentker (Gast)


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

von edvdoctor (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.