Darstellung von Bytes
-
Hallo,
ich möchte einen Sensor auslesen; dieser sendet die Daten
als WORD ( 2 Byte ). Meine I/O Karte liest die Daten byteweise ein.Wie kann ich die Daten der Messkarte komplett ( ein ganzes WORD )
darstellen ? Die byteweise Darstellung liefert ja falsche Werte ( da ich ja nur 8 bit darstellen kann und nicht die vollen 16 bit.Zur Verdeutlichung :
=> Deklaration des Eingangspuffers : BYTE Bufferin[2].
=> Daten einlesen : ....ReadRegister(Adresse, Anzahl Register, Bufferin);
=> Ausgabe des Messwertes ???Auch wenn es eine Anfängerfrage ist, bin ich für jede Hilfe dankbar.
-
Hi!
Wieso kannst du die beiden Bytes nicht darstellen? Wo liegt das Problem?
grüße
-
Mein Problem ist, dass ich nicht weiss, wie ich die beiden Bytes wieder als 16 bit- Zahl darstellen soll. ( mit dem entsprechenden Wertebereich).
-
short *ptr; ptr = (short *)Bufferin; printf("%hd", *ptr);
Bei evtl. Problemen mit der Byteorder (Endianess) halt die Bytes in Bufferin vorher umdrehen.
-
Hi!
Ohne hässliches gecaste:
unsigned short = ( b[ 0 ] << 8 ) | b[ 1 ];
grüße
-
Danke für die schnelle Beantwortung, das Auslesen funktioniert nun.