Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r23016be42e59935da5aa53b26b8cb31e2a240858 -rfcb9a1dce7d9b2de3ff0b725282d4ea3ddf14b1d --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 23016be42e59935da5aa53b26b8cb31e2a240858) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision fcb9a1dce7d9b2de3ff0b725282d4ea3ddf14b1d) @@ -37,10 +37,12 @@ /// Default publication interval for pressure and occlusion data. #define PRES_OCCL_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the pressure/occlusion data is published on the CAN bus. - + +#define ARTERIAL_PRESSURE_CONVERSION_COEFF 0x800000 ///< Arterial pressure conversion coefficient. #define ARTERIAL_PRESSURE_V_BIAS ( 3.0 ) ///< Bias voltage for arterial pressure sensor. #define ARTERIAL_PRESSURE_SENSITIVITY ( 0.000005 ) ///< Sensitivity for arterial pressure sensor is 5 uV / mmHg -#define ARTERIAL_PRESSURE_V_PER_BIT ( ARTERIAL_PRESSURE_V_BIAS / (F32)0x800000 ) ///< Volts per bit in 24-bit arterial pressure sensor reading. +#define ARTERIAL_PRESSURE_V_PER_BIT ( ARTERIAL_PRESSURE_V_BIAS / \ + (F32)ARTERIAL_PRESSURE_CONVERSION_COEFF ) ///< Volts per bit in 24-bit arterial pressure sensor reading. #define VENOUS_PRESSURE_OFFSET ( 1638 ) ///< Offset for 14-bit venous pressure sensor reading. #define VENOUS_PRESSURE_SCALE ( 14745 - VENOUS_PRESSURE_OFFSET ) ///< Scale for venous pressure sensor. @@ -407,7 +409,7 @@ else { U32 fpgaArtPres = getFPGAArterialPressure(); - S32 artPres = (S32)( fpgaArtPres & MASK_OFF_U32_MSB ) - 0x800000; // Subtract 2^23 from low 24 bits to get signed reading + S32 artPres = (S32)( fpgaArtPres & MASK_OFF_U32_MSB ) - ARTERIAL_PRESSURE_CONVERSION_COEFF; // Subtract 2^23 from low 24 bits to get signed reading rawArterialPres = (F32)artPres; artPresAlarm = (U08)( fpgaArtPres >> SHIFT_24_BITS ); // High byte is alarm code for arterial pressure }