Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r0eb6b6cabea10b2f455eeff36d68918cec7185b7 -rf581314a2793e712cf6da87b211911a615ca3456 --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 0eb6b6cabea10b2f455eeff36d68918cec7185b7) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision f581314a2793e712cf6da87b211911a615ca3456) @@ -7,8 +7,8 @@ * * @file TemperatureSensors.c * -* @author (last) Michael Garthwaite -* @date (last) 09-Oct-2023 +* @author (last) Dara Navaei +* @date (last) 30-May-2024 * * @author (original) Dara Navaei * @date (original) 08-Apr-2020 @@ -413,6 +413,13 @@ *************************************************************************/ void execTemperatureSensors( void ) { + // Check if a new calibration is available + if ( TRUE == isNewCalibrationRecordAvailable() ) + { + getNVRecord2Driver( GET_CAL_TEMP_SENSORS, (U08*)&tempSensorCalRecord, sizeof( DG_TEMP_SENSORS_CAL_RECORD_T ), + NUM_OF_CAL_DATA_TEMP_SENSORS, ALARM_ID_DG_TEMPERATURE_SENSORS_INVALID_CAL_RECORD ); + } + // Check the status of the software configuration adjustTemperatureSensorsRefResistance(); @@ -859,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;