From 7d8ce9ab9ca58756b5a163b0c63785e1f90beacb Mon Sep 17 00:00:00 2001 From: Paul Riseborough Date: Mon, 30 Jan 2017 22:36:16 +1100 Subject: [PATCH] sensors: Fix bug in temperature offset calculation --- .../sensors/temperature_compensation.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/modules/sensors/temperature_compensation.cpp b/src/modules/sensors/temperature_compensation.cpp index 084052a2c2..9ed0c965a9 100644 --- a/src/modules/sensors/temperature_compensation.cpp +++ b/src/modules/sensors/temperature_compensation.cpp @@ -270,15 +270,16 @@ bool TemperatureCompensation::calc_thermal_offsets_1D(SensorCalData1D &coef, flo } // calulate the offset - offset = coef.x0 + coef.x1 * delta_temp; - delta_temp *= delta_temp; - offset += coef.x2 * delta_temp; - delta_temp *= delta_temp; - offset += coef.x3 * delta_temp; - delta_temp *= delta_temp; - offset += coef.x4 * delta_temp; - delta_temp *= delta_temp; - offset += coef.x5 * delta_temp; + float temp_var = delta_temp; + offset = coef.x0 + coef.x1 * temp_var; + temp_var *= delta_temp; + offset += coef.x2 * temp_var; + temp_var *= delta_temp; + offset += coef.x3 * temp_var; + temp_var *= delta_temp; + offset += coef.x4 * temp_var; + temp_var *= delta_temp; + offset += coef.x5 * temp_var; return ret;