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