Index: firmware/App/Controllers/DrainPump.c =================================================================== diff -u -r19ed5eac0b3a24d9bf9da52767dcc5fe2872bd7c -rb545c1e7b85d4bb6a7c79920877d1eaa7e36fdff --- firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision 19ed5eac0b3a24d9bf9da52767dcc5fe2872bd7c) +++ firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision b545c1e7b85d4bb6a7c79920877d1eaa7e36fdff) @@ -125,7 +125,7 @@ /// ADC to RPM conversion coefficient or RPM to ADC conversion. static const F32 RPM_CONVERSION_COEFF = (F32) SEC_PER_MIN / ( 2.0F * TOGGLE_PERIOD_RESOLUTION_SECONDS * ROTATIONAL_TO_TOGGLE_PERIOD_CONVERSION ); -static const F32 CURRENT_CONVERSION_COEFF = (F32)( 1.0F / BITS_11_FULL_SCALE ); +static const F32 CURRENT_CONVERSION_COEFF = (F32)( 2.5F / ( BITS_12_FULL_SCALE - 1.0F ) ); // ********** private function prototypes ********** @@ -350,7 +350,7 @@ U16 fpgaADCCurrentCount = getFPGADrainPumpCurrentFeedback(); F32 currentA = getDrainPumpMeasuredCurrentA(); drainPumpMeasuredRPM.data = ( DRAIN_PUMP_OFF_RPM_ADC_COUNT == fpgaADCSpeedCount ? 0 : (U32)( RPM_CONVERSION_COEFF / (F32)fpgaADCSpeedCount ) ); - drainPumpMeasuredCurrentA.data = ( (F32)fpgaADCCurrentCount * CURRENT_CONVERSION_COEFF ) - 1.0F; + drainPumpMeasuredCurrentA.data = (F32)fpgaADCCurrentCount * CURRENT_CONVERSION_COEFF; drainPumpMeasuredDir.data = ( (U32)getFPGADrainPumpDirection() & 0x40 ) >> 7; #ifndef _RELEASE_