Gast
#3821418
Huhu Forum, ich habe hier wohl gerade einen Denkfehler: Ich bekomme über SPI 2 x uint16 Werte geliefert. Diese möchte ich nun lesbar in ASCII Format in eine Textdatei schreiben. Dazu baue ich zuerst einmal die beiden uint16 in eine uint32 Variable um und habe dann versucht diese mit snprintf in einen String als Float zu schreiben. Aber irgendwie stimmt da was nicht. Wenn ich z.B. 0xFAFA, 0xAFAF gesendet bekomme und das dann zu uint32 mache habe ich 0xFAFAAFAF das sagt mir auch der Debugger. Aber in meinem Sring_Mess_Data_Convert habe ich nicht den richtigen Float Wert stehen. Nach : http://www.binaryconvert.com/result_float.html?hexadecimal=FAFAAFAF müssten es -6.50818750621392972857946860736E35 bzw. nur 6 Stellen nach dem Komma. Aber ich bekomme : -1.76264e-05. Wo liegt mein Denkfehler?
1 | |
Habe es auch schonmal so probiert, war aber auch quatsch: k = snprintf (String_Mess_Data_Convert, MAX, "%g",(float)(rx_buffer[j + 1] +((uint32_t) rx_buffer[j] << 16))); [/c]