16bit daten byteweise übertragen

Gast #1545382
Lesenswert?

hallo zusammen

ich möchte 16bit integer Werte über eine serielle Schnittstelle bytweise 
übertragen. Zuerst HighByte dann LowByte. Also muss ich den Integer in 
zwei Char(Byte) "casten" bzw. aus zwei Byte einen Int machen. Gibt es 
eine funktion in der C-Standartbibliothek? Oder kennt jemand einen Weg 
dieses Problem ohne "grossen" Rechenaufwand zu lösen.

danke im voraus
Gast #1545398
Lesenswert?

Du musst dein Integer in 2 Byte "casten". Das Low Byte ist einfach, dass 
high Byte muss noch um 8 nach rechts geschoben werden und schon kannst 
du die Bytes übertragen.

Beispiel:

int data;
byte high_data, low_data;

void .....
{
 low_data = data; // oberer Teil wird einfach abgeschnitten
 high_data = data>>8; // könnte sein, dass das hier nicht funktioniert.
                      // mußt du mal testen.
}

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