Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -rebbb1f85550a1f9b8f946655f7b2b63f76fbf67d -r6742785597228dba2009e73a9de3f85024d4c82a --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision ebbb1f85550a1f9b8f946655f7b2b63f76fbf67d) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision 6742785597228dba2009e73a9de3f85024d4c82a) @@ -41,8 +41,8 @@ #define CONCENTRATE_PUMP_ERROR_TOLERANCE 0.02 ///< Measured speed needs to be within 2% of commanded speed. #define CONCENTRATE_PUMP_ZERO_FLOW_RATE 0xFFFF ///< Pulse width value when zero flow rate or pump is off. -#define CONCENTRATE_PUMP_VOLUME_PER_REV 0.15 ///< Volume output every revolution (mL). -#define CONCENTRATE_PUMP_PULSE_PER_REV 4.0 ///< Number of pulses generate for every revolution. +#define CONCENTRATE_PUMP_VOLUME_PER_REV 0.1 ///< Volume output every revolution (mL). +#define CONCENTRATE_PUMP_PULSE_PER_REV 2.0 ///< Number of pulses generate for every revolution. #define CONCENTRATE_PUMP_STEP_PER_REV 200.0 ///< Number of steps for every revolution. #define CONCENTRATE_PUMP_HALL_SENSE_PERIOD_RESOLUTION 100.0 ///< Hall sense period resolution in microseconds. @@ -53,7 +53,7 @@ #define CONCENTRATE_PUMP_VOLUME_PER_PULSE ( CONCENTRATE_PUMP_VOLUME_PER_REV / CONCENTRATE_PUMP_PULSE_PER_REV ) #define CONCENTRATE_PUMP_DATA_PUBLISH_INTERVAL ( 500 / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the concentrate pump is monitored. -#define CONCENTRATE_PUMP_CONTROL_INTERVAL ( 500 / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the concentrate pump is controlled. +#define CONCENTRATE_PUMP_CONTROL_INTERVAL ( 250 / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the concentrate pump is controlled. #define CONCENTRATE_PUMP_SPEED_CONTROL_PERSISTENCE_PERIOD ( 5 * MS_PER_SECOND ) ///< Persistence period for concentrate pump speed control error. /// Enumeration of concentrate pump states. @@ -268,10 +268,14 @@ targetSpeed_ml_min *= -1.0; } - if ( ( CONCENTRATE_PUMP_MIN_SPEED <= targetSpeed_ml_min ) && ( targetSpeed_ml_min <= CONCENTRATE_PUMP_MAX_SPEED ) ) + if ( targetSpeed_ml_min <= CONCENTRATE_PUMP_MAX_SPEED ) { concentratePumps[ pumpId ].pumpTargetSpeed = targetSpeed_ml_min; } + else if ( CONCENTRATE_PUMP_MIN_SPEED <= targetSpeed_ml_min ) + { + concentratePumps[ pumpId ].pumpTargetSpeed = 0.0; + } else { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_CONCENTRATE_PUMP_SPEED_OUT_OF_RANGE, targetSpeed_ml_min ) @@ -543,7 +547,7 @@ { F32 const absSpeed = fabs( value ); - if ( ( CONCENTRATE_PUMP_MIN_SPEED <= absSpeed ) && ( absSpeed <= CONCENTRATE_PUMP_MAX_SPEED ) ) + if ( absSpeed <= CONCENTRATE_PUMP_MAX_SPEED ) { result = TRUE; setConcentratePumpTargetSpeed( (CONCENTRATE_PUMPS_T)pumpId, value ); Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r28b5f2e7f757647145a82a39aca0a5f3652c68a1 -r6742785597228dba2009e73a9de3f85024d4c82a --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 28b5f2e7f757647145a82a39aca0a5f3652c68a1) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 6742785597228dba2009e73a9de3f85024d4c82a) @@ -14,7 +14,8 @@ * @date (original) 08-Apr-2020 * ***************************************************************************/ -#include // For temperature calculation +#include // For temperature calculation +#include // For memset() #include "FPGA.h" #include "PersistentAlarm.h"