Index: firmware/App/Drivers/PeristalticPump.c =================================================================== diff -u -rbd37ce75271151436de0bb6de9f75123d8251396 -rab35376c6b8ff81a4aa4095eb6c9bd33e1bf46d4 --- firmware/App/Drivers/PeristalticPump.c (.../PeristalticPump.c) (revision bd37ce75271151436de0bb6de9f75123d8251396) +++ firmware/App/Drivers/PeristalticPump.c (.../PeristalticPump.c) (revision ab35376c6b8ff81a4aa4095eb6c9bd33e1bf46d4) @@ -33,6 +33,7 @@ #define BP_HZ_TO_RPM_SCALAR 10.0F ///< Blood pump Hz to RPM scalar. #define BP_PERIOD_TO_HZ(p) ( 1.0F / (F32)((S32)(p) * BP_PERIOD_SEC) ) ///< Blood pump period to Hz conversion macro. #define BP_HZ_TO_RPM(h) ((h) * BP_HZ_TO_RPM_SCALAR) ///< Blood pump Hz to RPM conversion macro. +#define BP_ZERO_SPEED_PERIOD 0xFFFF ///< Blood pump period reported when pump is stopped. // ********** private data ********** @@ -82,13 +83,20 @@ F32 rpm = BP_HZ_TO_RPM(Hz); // update measured pump speed - if ( pumpSetSpeedRPM < 0 ) + if ( period != BP_ZERO_SPEED_PERIOD ) { - pumpMeasSpeedRPM.data = rpm * -1.0F; + if ( pumpSetSpeedRPM < 0 ) + { + pumpMeasSpeedRPM.data = rpm * -1.0F; + } + else + { + pumpMeasSpeedRPM.data = rpm; + } } else { - pumpMeasSpeedRPM.data = rpm; + pumpMeasSpeedRPM.data = 0.0F; } // clear home command if previously requested