Versuchs mal so:
byte_a = (uint8_t)daten;
byte_b = (uint8_t)( daten >> 8 );
Es könnte nämlich sein, dass er optimieren will, und daten schon umwandelt, bevor er den rechts-shift macht...
mfg
zerush
Hi,
ich möchte ein 16bit integer über den I2C Bus sende.
Dazu muss ich ihn ja in 2 Bytes aufteilen.
So sieht mein Code dazu aus:
In "byte_b" steht nur immer ein "0". Egal bei welchem wert von daten.Code:uint16_t daten = 65000; uint8_t byte_a = 0; uint8_t byte_b = 0; byte_a = daten; byte_b = daten >> 8;
Hab schon mehrere Beispiele von aufteilen in 2 Bytes ausprobiert. Gingen aber bisher alle nicht.
Wo ist der Fehler?
MfG Jörn
Meine Page: http://royalclan.de
Versuchs mal so:
byte_a = (uint8_t)daten;
byte_b = (uint8_t)( daten >> 8 );
Es könnte nämlich sein, dass er optimieren will, und daten schon umwandelt, bevor er den rechts-shift macht...
mfg
zerush
Kaum schickt man nach einer Stunde fehler suchen den Beitrag ab, findet man ihn... Dabei war ich mir doch ganz sicher, dass "daten" auch wirklich 16bit lang ist
Problem gelöst
Meine Page: http://royalclan.de
Lesezeichen