Hallo
writeIntegerLength(Ergebnis, DEC, 4); interpretiert das Ergebnis wieder als Integer. Fließpunktzahlen kannst du so nicht ausgeben. Stichwort wäre vielleicht float2string.
Ich versuche grundsätzlich nur ganze Zahlen zu verwenden. Wenn du nur die Ziffernfolge für z.B. eine Anzeige benötigst:
Code:
uint16_t Data = 0; // Data muss int16_t sein.
uint32_t Ergebnis = 0; // Ein longint mit 32 bit.
void Test(void)
{
Data = 804; // YXZ = z.b. 804
Ergebnis = 1000*Data / 1024; // Hab es auch so 1024 getestet.
// Test Ausgabe
writeString_P(" Ausgabe: 0,");
writeIntegerLength(Ergebnis, DEC, 4);
writeChar('\n');
}
(ungetestet)
Gruß
mic
Lesezeichen