Index: firmware/App/Controllers/LoadCell.c =================================================================== diff -u -r819c167acffdca21fef98c4c6103ae09b5757c58 -rc119b9eb99ecfca540c4e0bf579eec409403dff5 --- firmware/App/Controllers/LoadCell.c (.../LoadCell.c) (revision 819c167acffdca21fef98c4c6103ae09b5757c58) +++ firmware/App/Controllers/LoadCell.c (.../LoadCell.c) (revision c119b9eb99ecfca540c4e0bf579eec409403dff5) @@ -298,14 +298,17 @@ *************************************************************************/ BOOL isLoadCellTared( LOAD_CELL_ID_T loadCellID ) { + BOOL tared = FALSE; + if ( fabs( loadcells[ loadCellID ].autoCalOffset ) < NEARLY_ZERO ) { - return false; + tared = FALSE; } else { - return true; + tared = TRUE; } + return tared; } /*********************************************************************//** @@ -493,7 +496,7 @@ F32 drift = 0.0; F32 loadCellADrift = 0.0; F32 loadCellBDrift = 0.0; - BOOL isDriftOutOfRange = false; + BOOL isDriftOutOfRange = FALSE; // Test is valid after load cells are tared if ( isLoadCellTared( LOAD_CELL_RESERVOIR_1_PRIMARY ) && isLoadCellTared( LOAD_CELL_RESERVOIR_1_BACKUP ) ) @@ -507,15 +510,15 @@ getLoadCellSmallFilteredWeight( LOAD_CELL_RESERVOIR_2_BACKUP ) ); } - isDriftOutOfRange = ( loadCellADrift > LOAD_CELL_PRIMARY_BACKUP_MAX_ALLOWED_DRIFT_GRAMS ) || - ( loadCellBDrift > LOAD_CELL_PRIMARY_BACKUP_MAX_ALLOWED_DRIFT_GRAMS ); - - if ( TRUE == isDriftOutOfRange ) + if ( ( loadCellADrift > LOAD_CELL_PRIMARY_BACKUP_MAX_ALLOWED_DRIFT_GRAMS ) || + ( loadCellBDrift > LOAD_CELL_PRIMARY_BACKUP_MAX_ALLOWED_DRIFT_GRAMS ) ) { + isDriftOutOfRange = TRUE; drift = ( loadCellADrift > LOAD_CELL_PRIMARY_BACKUP_MAX_ALLOWED_DRIFT_GRAMS ? loadCellADrift : loadCellBDrift ); } else { + isDriftOutOfRange = FALSE; // Pick the biggest drift in between the two load cells when none of the is above range drift = ( loadCellADrift > loadCellBDrift ? loadCellADrift : loadCellBDrift ); }