From ddf3e4f7d3f5162be405a2cf3818153dba700ecd Mon Sep 17 00:00:00 2001 From: David P Hilton Date: Mon, 29 Oct 2018 23:05:12 -0600 Subject: [PATCH] fix overflow in tempError --- workspace/TS100/src/main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workspace/TS100/src/main.cpp b/workspace/TS100/src/main.cpp index eec0c87d..b587dd4e 100644 --- a/workspace/TS100/src/main.cpp +++ b/workspace/TS100/src/main.cpp @@ -948,7 +948,10 @@ void startPIDTask(void const *argument __unused) { // to be unstable. Use a rolling average to dampen it. // We overshoot by roughly 1/2 of 1 degree Fahrenheit. // This helps stabilize the display. - tempError.update(currentlyActiveTemperatureTarget - rawTemp + rawC/4); + int32_t tError = currentlyActiveTemperatureTarget - rawTemp + rawC/4; + tError = tError > INT16_MAX ? INT16_MAX : tError; + tError = tError < INT16_MIN ? INT16_MIN : tError; + tempError.update(tError); // Now for the PID! int32_t milliWattsOut = 0;