timers: create proper timeouts

This commit is contained in:
Vasily Davydov
2022-10-27 18:05:16 +03:00
parent 6cf950cc98
commit dc43afd441
4 changed files with 11 additions and 10 deletions

View File

@@ -226,15 +226,20 @@ StateHandler::handleTickValue (int value)
if (value > TIMER_PRESSURE_TIMEOUT)
{
SetState (&StateHandler::stateGetPressure);
++sensor_timer;
sensor_timer += value;
error_timer += value;
state_timer->resetCounter ();
}
if (value == TIMER_ERROR_VALUE)
if (error_timer > TIMER_GLOBAL_TIMEOUT)
{
displaySet (ERROR_TIMEOUT);
this->fan_speed.setInit (0);
this->value[(current_mode)].setInit (0);
saveSetAndDisplay(AUTO);
displaySet (ERROR_TIMEOUT);
SetState (&StateHandler::stateInit);
state_timer->Sleep(2000);
state_timer->resetCounter();
error_timer = 0;
}
}

View File

@@ -87,11 +87,6 @@ main (void)
i1 = DWT->CYCCNT;
getcounterValue = glob_time.getCounter ();
if (getcounterValue > TIMER_GLOBAL_TIMEOUT)
{
glob_time.resetCounter ();
ventMachine.HandleState (Event (Event::eTick, TIMER_ERROR_VALUE));
}
sw_up.listen ();
sw_down.listen ();
sw_toggle.listen ();