From 0e74d661259e0d997759a1ead93a72bae5f3d0df Mon Sep 17 00:00:00 2001 From: Chris Giacofei Date: Mon, 29 Apr 2024 12:47:49 -0400 Subject: [PATCH] Change check for out of bounds setpoints. Makes more sense this way, and is compatible with more boards. ESP32 chips don't seem to like min/max with mixed types. --- boil_kettle/boil_kettle.ino | 9 +++++---- boil_kettle/src/thermoControl/thermoControl.cpp | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/boil_kettle/boil_kettle.ino b/boil_kettle/boil_kettle.ino index 6fd4a92..0139330 100644 --- a/boil_kettle/boil_kettle.ino +++ b/boil_kettle/boil_kettle.ino @@ -45,6 +45,7 @@ char* KettleState() { case OFF: return (char*)"OFF"; case AUTOMATIC: return (char*)"AUT"; case MANUAL: return (char*)"MAN"; + default: return (char*)"OFF"; } } @@ -88,8 +89,8 @@ void doEncoder() { KettleSetpoint = (KettleSetpoint / inc) * inc - inc; } - KettleSetpoint = max(KettleSetpoint,0); - KettleSetpoint = min(KettleSetpoint,212); + if (KettleSetpoint > 212) KettleSetpoint=212; + if (KettleSetpoint < 0) KettleSetpoint=0; } else if (Controller.Mode() == MANUAL) { if (result == DIR_CW) { @@ -98,8 +99,8 @@ void doEncoder() { KettleDuty = (KettleDuty / inc) * inc - inc; } - KettleDuty = max(KettleDuty,0); - KettleDuty = min(KettleDuty,100); + if (KettleDuty > 100) KettleDuty = 100; + if (KettleDuty < 0) KettleDuty = 0; } //menu.update(); diff --git a/boil_kettle/src/thermoControl/thermoControl.cpp b/boil_kettle/src/thermoControl/thermoControl.cpp index 8d39082..2656d04 100644 --- a/boil_kettle/src/thermoControl/thermoControl.cpp +++ b/boil_kettle/src/thermoControl/thermoControl.cpp @@ -28,8 +28,8 @@ bool thermoControl::Compute() { *output_pwm = outMax; } else if (error > hysteresis) { *output_pwm = 100 * error / max_pwr_threshold; - *output_pwm = max(*output_pwm, outMin); - *output_pwm = min(*output_pwm, outMax); + if (*output_pwm > 100) *output_pwm = 100; + if (*output_pwm < 0) *output_pwm = 0; } else { *output_pwm = 0; }