Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -r0f4fbb2a56cdbe35dcedd9cad23867fd7248f86e -r79e0b1152e278a3b09d7d93c83a27f8998a2f3b6 --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 0f4fbb2a56cdbe35dcedd9cad23867fd7248f86e) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 79e0b1152e278a3b09d7d93c83a27f8998a2f3b6) @@ -42,6 +42,7 @@ #define PUMP_PRESSURE_PSIA_TO_PSI_OFFSET 14.7F ///< Subtract this offset to convert PSIA to PSI. TODO - use barometric sensor when available. #define ONE_BAR_TO_PSI_CONVERSION 14.5F ///< 1 bar to PSI conversion. #define ONE_BAR_TO_MILLI_BAR 1000 ///< 1 bar to milli bar conversion. +#define COUNTS_TO_MILLI_BAR 100 ///< Counts to milli bar conversion. #define PRESSURE_SAMPLES_TO_AVERAGE ( 200 / TASK_PRIORITY_INTERVAL ) ///< Averaging pressure data over the reporting interval. #define PRESSURE_AVERAGE_MULTIPLIER ( 1.0F / (F32)PRESSURE_SAMPLES_TO_AVERAGE ) ///< Optimization - multiplying is faster than dividing. @@ -306,7 +307,7 @@ msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] += (S32)getIntADCReading( INT_ADC_RO_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] += (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] += (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - msrdPressureSum[ PRESSURE_SENSOR_BAROMETRIC ] += (S32)getFPGABaroPressure(); + msrdPressureSum[ PRESSURE_SENSOR_BAROMETRIC ] += (S32)( getFPGABaroPressure() & MASK_OFF_U32_MSB ); // Check if a new calibration is available if ( TRUE == isNewCalibrationRecordAvailable() ) @@ -439,7 +440,7 @@ U64 presSensitivity = baroConvConsts.pressureSensitivity * TWO_TO_POWER_OF_16; U64 sensitivity = tempSensitivity + presSensitivity; S32 pres = (S32)( ( ( adcSum * sensitivity ) / TWO_TO_POWER_OF_21 ) - offset ) / TWO_TO_POWER_OF_15; - F32 presPSI = ( (F32)pres / (F32)ONE_BAR_TO_MILLI_BAR ) * ONE_BAR_TO_PSI_CONVERSION; + F32 presPSI = ( (F32)pres / (F32)( COUNTS_TO_MILLI_BAR * ONE_BAR_TO_MILLI_BAR ) ) * ONE_BAR_TO_PSI_CONVERSION; return presPSI; }