Hallo
Ich versuche mich gerade in C-Programmierung und probiere z.Z. dtostrf
und dtostre aus. Wenn ich den µC rechnen lasse und das Ergebnis auf den
LCD ausgebe haut das ja hin:
1 | float f1 = -1.25;
|
2 | float f2 = 2.5;
|
3 | float f = f1 * f2;
|
4 | char s1[20];
|
5 | lcd_string(dtostrf (f,6,2,s1)); //Ausgabe z.B.: 123.34
|
6 | lcd_string(dtostre (f,s2,3,1)); //Ausgabe z.B.: 1.2334e+02
|
Das Ergebnis auf dem LCD lautet 3.125 und ist somit korrekt.
Im nächsten Schritt habe ich aus Wikipedia einen Gleitkommawert (Single
Precision) nach IEEE754 als Hew _Wert eingegeben:
Zahl = +11,25 = 0b01000001001101000000000000000000 = 0x41340000
und wollte dann die korrekte Zahl auf dem LCD sehen aber raus kam:
1093926792,14
Der Codeschnipsel dazu:
1 | float f1 = 0x41340000
|
2 | char s1[20];
|
3 | lcd_string(dtostrf (f1,6,2,s1)); //Ausgabe z.B.: 123.34
|
4 | lcd_string(dtostre (f1,s1,3,1)); //Ausgabe z.B.: 1.2334e+02
|
Kann mir das bitte jemand erklären?