Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -r93a439cf9d1b347e23b84d1156417380ee01efaa -rc9cb494c004e390155ce7c8b3cda96cf8c1b5fa7 --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 93a439cf9d1b347e23b84d1156417380ee01efaa) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision c9cb494c004e390155ce7c8b3cda96cf8c1b5fa7) @@ -132,13 +132,13 @@ static PUMP_CONTROL_MODE_T dialInPumpControlMode = PUMP_CONTROL_MODE_CLOSED_LOOP; ///< requested dialIn pump control mode. static PUMP_CONTROL_MODE_T dialInPumpControlModeSet = PUMP_CONTROL_MODE_CLOSED_LOOP;///< currently set dialIn pump control mode. -DATA_DECL( U32, DialInFlowDataPub, dialInFlowDataPublishInterval, DIAL_IN_FLOW_DATA_PUB_INTERVAL, DIAL_IN_FLOW_DATA_PUB_INTERVAL ); ///< interval (in ms) at which to publish dialIn flow data to CAN bus -DATA_DECL( S32, TargetDialInFlowRate, targetDialInFlowRate, 0, 0 ); ///< requested dialIn flow rate -DATA_DECL( F32, MeasuredDialInFlowRate, measuredDialInFlowRate, 0.0, 0.0 ); ///< measured dialIn flow rate -DATA_DECL( F32, MeasuredDialInPumpRotorSpeed, dialInPumpRotorSpeedRPM, 0.0, 0.0 ); ///< measured dialIn pump rotor speed -DATA_DECL( F32, MeasuredDialInPumpSpeed, dialInPumpSpeedRPM, 0.0, 0.0 ); ///< measured dialIn pump motor speed -DATA_DECL( F32, MeasuredDialInPumpMCSpeed, adcDialInPumpMCSpeedRPM, 0.0, 0.0 ); ///< measured dialIn pump motor controller speed -DATA_DECL( F32, MeasuredDialInPumpMCCurrent, adcDialInPumpMCCurrentmA, 0.0, 0.0 ); ///< measured dialIn pump motor controller current +static OVERRIDE_U32_T dialInFlowDataPublishInterval = { DIAL_IN_FLOW_DATA_PUB_INTERVAL, DIAL_IN_FLOW_DATA_PUB_INTERVAL, DIAL_IN_FLOW_DATA_PUB_INTERVAL, 0 }; ///< interval (in ms) at which to publish dialIn flow data to CAN bus +static OVERRIDE_S32_T targetDialInFlowRate = { 0, 0, 0, 0 }; ///< requested dialIn flow rate +static OVERRIDE_F32_T measuredDialInFlowRate = { 0.0, 0.0, 0.0, 0 }; ///< measured dialysate inlet flow rate +static OVERRIDE_F32_T dialInPumpRotorSpeedRPM = { 0.0, 0.0, 0.0, 0 }; ///< measured dialysate inlet pump rotor speed +static OVERRIDE_F32_T dialInPumpSpeedRPM = { 0.0, 0.0, 0.0, 0 }; ///< measured dialysate inlet pump motor speed +static OVERRIDE_F32_T adcDialInPumpMCSpeedRPM = { 0.0, 0.0, 0.0, 0 }; ///< measured dialysate inlet pump motor controller speed +static OVERRIDE_F32_T adcDialInPumpMCCurrentmA = { 0.0, 0.0, 0.0, 0 }; ///< measured dialysate inlet pump motor controller current static U32 dipControlTimerCounter = 0; ///< determines when to perform control on dialIn flow @@ -856,8 +856,8 @@ if ( ++dipMotorSpeedCalcTimerCtr >= DIP_SPEED_CALC_INTERVAL ) { U16 dipMotorHallSensorCount = getFPGADialInPumpHallSensorCount(); - U16 incDelta = ( dipMotorHallSensorCount >= dipLastMotorHallSensorCount ? dipMotorHallSensorCount - dipLastMotorHallSensorCount : ( 0x10000 - dipLastMotorHallSensorCount ) + dipMotorHallSensorCount ); - U16 decDelta = 0x10000 - incDelta; + U16 incDelta = ( dipMotorHallSensorCount >= dipLastMotorHallSensorCount ? dipMotorHallSensorCount - dipLastMotorHallSensorCount : ( HEX_64_K - dipLastMotorHallSensorCount ) + dipMotorHallSensorCount ); + U16 decDelta = HEX_64_K - incDelta; U16 delta; // determine dialysate inlet pump speed/direction from delta hall sensor count since last interval