diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2017-11-13 11:07:20 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2017-11-13 11:07:20 -0500 |
commit | fda988889b7cee2b95b35d06e15b5ecb3ad92bbb (patch) | |
tree | 559c94cacddbe491918808eab2d8b4004e30b494 | |
parent | b58a897b704e637fd446d7e6cfaa4c51912b543e (diff) | |
download | kutter-fda988889b7cee2b95b35d06e15b5ecb3ad92bbb.tar.gz kutter-fda988889b7cee2b95b35d06e15b5ecb3ad92bbb.tar.xz kutter-fda988889b7cee2b95b35d06e15b5ecb3ad92bbb.zip |
heater: Avoid math errors on extreme ADC readings
Avoid log(0) and divide by zero errors in the thermistor calc_temp()
method.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r-- | klippy/heater.py | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/klippy/heater.py b/klippy/heater.py index 445f868b..c666ddec 100644 --- a/klippy/heater.py +++ b/klippy/heater.py @@ -35,6 +35,7 @@ class Thermistor: self.c2 = (inv_t12 - self.c3 * ln3_r12) / ln_r12 self.c1 = inv_t1 - self.c2 * ln_r1 - self.c3 * ln3_r1 def calc_temp(self, adc): + adc = max(.00001, min(.99999, adc)) r = self.pullup * adc / (1.0 - adc) ln_r = math.log(r) inv_t = self.c1 + self.c2 * ln_r + self.c3 * ln_r**3 |