Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -r4e11c80367b5ae522aa34fb137079e516c98831b -r059eb49a6f8fd2e2277b98b4aee986eb4519820a --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 4e11c80367b5ae522aa34fb137079e516c98831b) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 059eb49a6f8fd2e2277b98b4aee986eb4519820a) @@ -433,12 +433,12 @@ static F32 calculateBaroPressure( U32 adcSum ) { S32 tempDiff = getBaroSensorTemperatureDiff(); - U64 tempOffset = ( baroConvConsts.pressureOffsetTempCoeff * tempDiff ) / TWO_TO_POWER_OF_6; - U64 presOffset = baroConvConsts.pressureOffset * TWO_TO_POWER_OF_17; - U64 offset = presOffset + tempOffset; - U64 tempSensitivity = ( baroConvConsts.pressureSensitivityTempCoeff * tempDiff ) / TWO_TO_POWER_OF_7; - U64 presSensitivity = baroConvConsts.pressureSensitivity * TWO_TO_POWER_OF_16; - U64 sensitivity = tempSensitivity + presSensitivity; + S64 tempOffset = ( baroConvConsts.pressureOffsetTempCoeff * tempDiff ) / TWO_TO_POWER_OF_6; + S64 presOffset = baroConvConsts.pressureOffset * TWO_TO_POWER_OF_17; + S64 offset = presOffset + tempOffset; + S64 tempSensitivity = ( baroConvConsts.pressureSensitivityTempCoeff * tempDiff ) / TWO_TO_POWER_OF_7; + S64 presSensitivity = baroConvConsts.pressureSensitivity * TWO_TO_POWER_OF_16; + S64 sensitivity = tempSensitivity + presSensitivity; S32 pres = (S32)( ( ( adcSum * sensitivity ) / TWO_TO_POWER_OF_21 ) - offset ) / TWO_TO_POWER_OF_15; F32 presPSI = ( (F32)pres / (F32)( COUNTS_TO_MILLI_BAR * ONE_BAR_TO_MILLI_BAR ) ) * ONE_BAR_TO_PSI_CONVERSION;