Da...
diff = (int16_t)Ua - (int16_t)Ua_cal;
...musst Du casten.
Ansonsten subtrahierst Du zwei UINTs, was genauso schief geht, wie ein Addieren mit Überlauf.
BTW: Hast Du noch den Simulator im Microchip Studio? Damit lässt sich sowas debuggen.
Da...
diff = (int16_t)Ua - (int16_t)Ua_cal;
...musst Du casten.
Ansonsten subtrahierst Du zwei UINTs, was genauso schief geht, wie ein Addieren mit Überlauf.
BTW: Hast Du noch den Simulator im Microchip Studio? Damit lässt sich sowas debuggen.
Lesezeichen