Gast
#2181427
Hallo
ich möchte in meinem Tiny13 mit der in Excel ermittelte Formel
y = 0.004347x2 + 0.174571x - 155.697431
eine Temperatur (y) berechnen.
Die Formel hab ich genähert durch:
y = (68x/1024)^2 + 89x/512 -156
und entsprechend umgesetzt:
volatile int32_t temperatur;
temperatur = (((68*ADC) >> 10)^2)
+ ((89*ADC) >> 9)
- 156;
Die ADC-Werte überschreiten den Wert von 350 nie, einen Überlauf sollte
also weder beim 1. noch beim 2. Term geben. Doch leider stimmt das
Ergebnis hinten und vorne nicht.
Auch wenn ich im Code die Variable "ADC" durch einen fixen Wert
ersetzte, weicht die Ausgabe stark vom erwarteten Ergebnis ab. Hier
einige Beispiele
Faktor an Stelle von "ADC" Ergebnis erw. Ergebnis
0 -154 -156
16 -151 -153 (= 1^2 + 2 - 156)
128 -124 -70 (= 8^2 + 22 - 156)
256 -93 177 (= 17^2 + 44 - 156)
350 -75 433 (= 23^2 + 60 - 156)
Woran liegt der Fehler???
Besten dank für eure Hilfe