diff --git a/src/measure.c b/src/measure.c index 5a62d72..3427b6e 100644 --- a/src/measure.c +++ b/src/measure.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "measure.h" #include "PontCoopScheduler.h" @@ -49,7 +50,14 @@ void measureCollectAndProcessConversion(void *handleArg) { // process adcValue // store result in variable temperature - float r = ((((float)N_MAX) / ((float)n)) - 1.0) * R_REF; + float r = 0.0; + if (n == 0) { + r = 0.0; + } else if (n == N_MAX) { + r = FLT_MAX; + } else { + r = R_REF / ((((float)N_MAX) / ((float)n)) - 1.0); + } float t = (r / PT1000_R0 - 1) / PT1000_Coeff; uint8_t temperature = (uint8_t)t;