Index: PressureCommon.c =================================================================== diff -u -r9bd7299479e7ac304483a309544173beea24557d -r34e9d24b76d786a5d3bba641f06e7764439c161e --- PressureCommon.c (.../PressureCommon.c) (revision 9bd7299479e7ac304483a309544173beea24557d) +++ PressureCommon.c (.../PressureCommon.c) (revision 34e9d24b76d786a5d3bba641f06e7764439c161e) @@ -15,48 +15,46 @@ * ***************************************************************************/ -#include "PressureCommon.h" - +#include "PressureCommon.h" + /** * @addtogroup PressureCommon * @{ */ -// ********** private definitions ********** - -#define BAR_TO_MMHG ( 750.062F ) ///< Conversion factor for converting bar to mmHg. +// ********** private definitions ********** #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. +#define PRESSURE_FS_MINUS_ZERO ( PRESSURE_FS - PRESSURE_ZERO ) ///< Pressure sensor fullscale and zero difference. #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. -// ********** private data ********** - - +// ********** private data ********** + + // ********** private function prototypes ********** /*********************************************************************//** * @brief - * The convertPressureReading2mmHg function converts a raw pressure ADC - * reading from a pressure sensor to mmHg. + * The convertPressureReading function converts a raw pressure ADC + * reading from a pressure sensor to desired units based on given min and + * max range of values. * @details \b Inputs: none * @details \b Outputs: none - * @return Pressure reading in mmHg + * @param counts Pressure sensor reading (in counts) read from FPGA. + * @param min Minimum pressure range in desired units + * @param max Maximum pressure range in desired units + * @return Pressure reading in desired units *************************************************************************/ -F32 convertPressureReading2mmHg( S16 counts ) -{ - F32 pressure_bar, mmHg; +F32 convertPressureReading( S16 counts, F32 min, F32 max ) +{ // Convert raw pressure counts to desired units + F32 pressure_bar = ( ( max - min ) * ( (F32)counts - PRESSURE_ZERO ) / PRESSURE_FS_MINUS_ZERO ) + min; - // Convert raw pressure counts to bar and then to mmHg - pressure_bar = PRESSURE_FS_MINUS_ZERO * ( ( (F32)counts - PRESSURE_ZERO ) / PRESSURE_FS_MINUS_ZERO ) + PRESSURE_ZERO; - mmHg = pressure_bar * BAR_TO_MMHG; - - return mmHg; + return pressure_bar; } /*********************************************************************//** @@ -76,5 +74,5 @@ return degC; } - + /**@}*/