Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r7c5eba5948a1ed940252c6fe0b1c56f17b313980 -rf581314a2793e712cf6da87b211911a615ca3456 --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 7c5eba5948a1ed940252c6fe0b1c56f17b313980) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision f581314a2793e712cf6da87b211911a615ca3456) @@ -8,7 +8,7 @@ * @file TemperatureSensors.c * * @author (last) Dara Navaei -* @date (last) 17-Feb-2024 +* @date (last) 30-May-2024 * * @author (original) Dara Navaei * @date (original) 08-Apr-2020 @@ -866,10 +866,12 @@ case TEMPSENSORS_BAROMETRIC_TEMP_SENSOR: { - tempSensors[ sensorIndex ].baroTempSnsrDiff = (S32)avgADCReads - ( baroConvConsts.refTemperature * TWO_TO_POWER_OF_8 ); - S64 baroSnsrTemperature = BARO_SENSOR_REFERENCE_TEMP_C + ( ( tempSensors[ sensorIndex ].baroTempSnsrDiff * - baroConvConsts.temperatureCoeff ) / TWO_TO_POWER_OF_23 ); - temperature = (F32)( (U32)( baroSnsrTemperature ) / 100 ); + S32 baroTempSensorsDiff = (S32)avgADCReads - ( baroConvConsts.refTemperature * TWO_TO_POWER_OF_8 ); + S64 differenceTimesCoefficient = (S64)baroTempSensorsDiff * (S64)baroConvConsts.temperatureCoeff; + S64 baroSnsrTemperature = BARO_SENSOR_REFERENCE_TEMP_C + ( differenceTimesCoefficient / TWO_TO_POWER_OF_23 ); + + temperature = (F32)( baroSnsrTemperature / 100.0F ); + tempSensors[ sensorIndex ].baroTempSnsrDiff = baroTempSensorsDiff; } break;