4x 1 Byte in float.?
-
HI Leute!
Ich möchte eine float Variable vom µC an den PC schicken! Über die RS232 schicke ich jeweils ein byte -> also 4 x 1 byte ! Am PC erwartet ein Programm die Daten doch wie mache ich es das ich in eine Float die Werte richtig reinschreiben wenn 4x 1 byte kommt? also die bytes werden im µC nur immer um 8 stellen verschoben !
Ich hoffe es versteht jemand was ich meine

Frohe Weihnachten Leute :xmas1: und vielen Dank!
-
Hallo
verwende doch einfach ein union dafuer
zB so
union unFS { char sStr[4]; float fWert; } unWandl;in sStr schreibst du deine 4 Bytes rein in fWert steht dein float
achten musst du auf den richtigen Reihenfolge der BytesMfG
Klaus
-
oder halt so:
float f1 = 123456.789f; // float in 4 char umwandeln char c1 = ((char*) &f1)[0]; char c2 = ((char*) &f1)[1]; char c3 = ((char*) &f1)[2]; char c4 = ((char*) &f1)[3]; float f2; // und umgekehrt ((char*) &f2)[0] = c1; ((char*) &f2)[1] = c2; ((char*) &f2)[2] = c3; ((char*) &f2)[3] = c4;