diff --git a/src/charge_control.c b/src/charge_control.c index cef43f0..7a2e53b 100644 --- a/src/charge_control.c +++ b/src/charge_control.c @@ -270,7 +270,7 @@ static void load_fsm_update(uint64_t uptime_ms, struct MeasurementResult *meas) discharge_state = DISCHARGE_OVERCURRENT; } - if(meas->u_bat < u_bat_load_off) { + if(meas->avg_u_bat < u_bat_load_off) { discharge_state = DISCHARGE_VOLTAGE_LOW; } break; @@ -282,7 +282,7 @@ static void load_fsm_update(uint64_t uptime_ms, struct MeasurementResult *meas) } // Can only switch on again after a specific amount of time has passed - if((meas->u_bat > u_bat_load_on) + if((meas->avg_u_bat > u_bat_load_on) && (discharge_time_in_state > LOAD_ON_DELAY)) { discharge_state = DISCHARGE_OK; }