Index: PressureCommon.c =================================================================== diff -u -re17124f84bdd75e18007f27e0cb38471f119337e -r05724b8bd3cc87c0ab18f0c43b4de5f549e5f186 --- PressureCommon.c (.../PressureCommon.c) (revision e17124f84bdd75e18007f27e0cb38471f119337e) +++ PressureCommon.c (.../PressureCommon.c) (revision 05724b8bd3cc87c0ab18f0c43b4de5f549e5f186) @@ -26,19 +26,14 @@ #define BAR_TO_MMHG ( 750.062F ) ///< Conversion factor for converting bar to mmHg. -#define PRESSURE_FS ( 80.0F ) ///< Pressure sensor full scale percentage. -#define PRESSURE_ZERO ( 0.0F ) ///< Pressure sensor zero value. -#define PRESSURE_FS_RATIO ( 0.9F ) ///< Pressure sensor full scale ratio. -#define PRESSURE_ZERO_RATIO ( 0.1F ) ///< Pressure sensor zero ratio. -#define PRESSURE_DIVIDER ( 8388608.0F ) ///< Pressure sensor divider. +#define PRESSURE_FS ( 14746.0F ) ///< Pressure sensor full scale output. +#define PRESSURE_ZERO ( 1638.0F ) ///< Pressure sensor zero value. +#define PRESSURE_FS_MINUS_ZERO ( 13108.0F ) ///< Pressure sensor fullscale and zero difference. -/// Scaler value for converting pressure readings from kPa to bar (100th). -#define PRESSURE_SCALER ( ( PRESSURE_FS - PRESSURE_ZERO ) / \ - ( PRESSURE_FS_RATIO - PRESSURE_ZERO_RATIO ) ) +#define PRESSURE_TEMP_RESOLUTION ( 2047.0F ) ///< Pressure sensor temperature resoultion 2^11 bit equals to 2047. +#define PRESSURE_TEMP_MULTIPLIER ( 200.0F ) ///< Pressure sensor multiplier +#define PRESSURE_TEMP_OFFSET ( 50.0F ) ///< Pressure sensor temperature offset. -#define PRESSURE_TEMP_DIVIDER ( 65536.0F ) ///< Pressure sensor temperature divider. -#define PRESSURE_TEMP_OFFSET ( 25.0F ) ///< Pressure sensor temperature offset. - // ********** private data ********** @@ -53,12 +48,12 @@ * @details \b Outputs: none * @return Pressure reading in mmHg *************************************************************************/ -F32 convertPressureReading2mmHg( S32 counts ) +F32 convertPressureReading2mmHg( S16 counts ) { F32 pressure_bar, mmHg; // Convert raw pressure counts to bar and then to mmHg - pressure_bar = ( ( (F32)counts / PRESSURE_DIVIDER ) - PRESSURE_ZERO_RATIO ) * PRESSURE_SCALER; + pressure_bar = PRESSURE_FS_MINUS_ZERO * ( ( (F32)counts - PRESSURE_ZERO ) / PRESSURE_FS_MINUS_ZERO ) + PRESSURE_ZERO; mmHg = pressure_bar * BAR_TO_MMHG; return mmHg; @@ -72,12 +67,12 @@ * @details \b Outputs: none * @return Temperature reading in Celsius *************************************************************************/ -F32 convertPressureTempReading2DegC( S32 counts ) +F32 convertPressureTempReading2DegC( S16 counts ) { F32 degC; // Convert raw pressure sensor temperatures to deg C - degC = ( (F32)counts / PRESSURE_TEMP_DIVIDER ) + PRESSURE_TEMP_OFFSET; + degC = ( ( (F32)counts / PRESSURE_TEMP_RESOLUTION ) * PRESSURE_TEMP_MULTIPLIER ) - PRESSURE_TEMP_OFFSET; return degC; }