Hallo zusammen,
ich ein sehr dubioses Problem und zwar rechnet eine Funktion falsch..
Hier ist erstmal die Funktion:
Ua und Ua_cal sind Spannungen, in Millivolt zwischen 0 und 5000 (also 0V und 5V)Code:#define SENSOR_SHUNT 61.9 int16_t calculate_pump_current (uint16_t Ua, uint16_t Ua_cal) { float diff; diff = Ua - Ua_cal; return (int16_t)(diff / (SENSOR_SHUNT * 8.0) * 1000); }
Nun zum Problem:
Wenn diff negativ ist, rechnet er einen Blödsinn zusammen.
Beispiel für falsche Berechnung:
Ua = 750
Ua_cal = 1500
Berechneter Wert ist: -222
Erwarteter Wert: -1515
Beispiel für korrekte Berechnung:
Ua = 3000
Ua_cal = 1500
Berechneter Wert ist: 3029
Erwarteter Wert: 3029
Ich habe es mit Excel gegengerechnet.
Hat jemand eine Idee, was da schief läuft?
Danke Euch!
EDIT:
MCU: Atmega2560
IDE: Mcrochip Studio 7.0.2542







Zitieren

Lesezeichen