Index: firmware/App/Controllers/DrainPump.c =================================================================== diff -u -r35246359c5a9080c704e0a6f1563e99a337e2e91 -r93dc3570f6a7581dd82f7f76e256784be29d5530 --- firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision 35246359c5a9080c704e0a6f1563e99a337e2e91) +++ firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision 93dc3570f6a7581dd82f7f76e256784be29d5530) @@ -63,7 +63,7 @@ #define MAX_ALLOWED_TARGET_DELTA_PRESSURE 10.0 ///< Maximum allowed delta pressure for closed loop control. #define MAX_ALLOWED_OPEN_LOOP_RPM_OUT_OF_RANGE 20 ///< Maximum allowed RPM out of range from target RPM in open loop. -#define OPEN_LOOP_RPM_OUT_OF_RANGE_TIME_OUT 5000 ///< Open loop RPM out of range time out in ms. +#define OPEN_LOOP_RPM_OUT_OF_RANGE_TIME_OUT ( 5 * MS_PER_SECOND ) ///< Open loop RPM out of range time out in ms. /// Enumeration of drain pump states. typedef enum DrainPump_States @@ -87,10 +87,6 @@ #define SET_DRAIN_PUMP_ENABLE() {mibspiREG3->PC3 |= DRAIN_PUMP_ENABLE_SPI3_PORT_MASK;} ///< drain pump enable set macro. #define CLR_DRAIN_PUMP_ENABLE() {mibspiREG3->PC3 &= ~DRAIN_PUMP_ENABLE_SPI3_PORT_MASK;} ///< drain pump enable clear macro. -// TODO - test code - remove later -#define DRAIN_PUMP_TEST2_SPI1_PORT_MASK 0x00000004 // (CS2 - re-purposed as input GPIO) -#define GET_DIP_SW2_TEST() ( ( mibspiREG1->PC2 & DRAIN_PUMP_TEST2_SPI1_PORT_MASK ) != 0 ) - // ********** private data ********** static DRAIN_PUMP_STATE_T drainPumpState = DRAIN_PUMP_OFF_STATE; ///< current state of drain pump controller state machine @@ -130,7 +126,7 @@ /*********************************************************************//** * @brief * The initDrainPump function initializes the DrainPump module. - * @details Inputs: hasClosedLoopBeenRequested + * @details Inputs: none * @details Outputs: hasClosedLoopBeenRequested * @return none *************************************************************************/ @@ -167,11 +163,8 @@ if ( ( 0 == rpm ) || ( ( rpm >= MIN_DRAIN_PUMP_RPM ) && ( rpm <= MAX_DRAIN_PUMP_RPM ) ) ) { -#ifdef EMC_TEST_BUILD - drainPumpDAC = (U32)((F32)2500 * DRP_SPEED_RPM_TO_ADC_FACTOR + FLOAT_TO_INT_ROUNDUP_OFFSET); -#else drainPumpDAC = (U32)((F32)rpm * DRP_SPEED_RPM_TO_ADC_FACTOR + FLOAT_TO_INT_ROUNDUP_OFFSET); -#endif + targetDrainPumpRPM = rpm; drainPumpControlMode = PUMP_CONTROL_MODE_OPEN_LOOP; drainPumpControlModeSet = drainPumpControlMode; @@ -262,8 +255,8 @@ // Check if RPM out of range. Using fabs since the read RPM can be above or below the target. BOOL isRPMOutOfRange = fabs( getTargetDrainPumpRPM() - currentDrainPumpRPM ) > MAX_ALLOWED_OPEN_LOOP_RPM_OUT_OF_RANGE; - // TODO fill the limit argument with the right value - checkPersistentAlarm( PERSISTENT_ALARM_DRAIN_PUMP_RPM_OUT_OF_RANGE, isRPMOutOfRange, currentDrainPumpRPM, 0 ); + checkPersistentAlarm( PERSISTENT_ALARM_DRAIN_PUMP_RPM_OUT_OF_RANGE, isRPMOutOfRange, currentDrainPumpRPM, + MAX_ALLOWED_OPEN_LOOP_RPM_OUT_OF_RANGE ); } // Publish drain pump data on interval