Hallo Leute,
hoffe ihr könnt mir helfen.
Ich will mit meinem ATmega32 eine berechnung ausführen und das Ergebnis
über die serielle Schnittstelle ausgeben.
Die berechnung ist folgende:
1 | Messwert = 150 + 512; //MinWert + Test halber AD-Wert
|
2 | Messwert = (Messwert-(Offset+IntOffset))*(1+(Scale+IntScale)/100);
|
3 |
|
4 | Messwert = Messwert + 0.5; // +0.5 für richtige Rundung
|
5 | Messwert = (int) (Messwert); // Messwert ohne Nachkommastellen
|
Die Variablen Messwert, Offset, IntOffset, Scale und IntScale sind
Floats und können während der Laufzeit geändert werden.
Dann die Ausgabe
1 | char Output[10];
|
2 | itoa(Messwert, Output, 10);
|
3 | uart_puts(Output);
|
Das ergebnis ist dann aber immer 0.
Wenn ich nur 150+512 berechnen lasse, bekomme ich auch 662 raus.
Vllt kann mir jemand einen Tipp geben was ich falsch mache.
Schon mal danke im Voraus.