VLLV (13.04.2019 22:45, просмотров: 345) ответил Скрипач на Ну и чего я тогда не понял? В моей предметной области это не удобно. Слишком много чисто технологических задержек. Дункелс рулит.
То, что может быть неудобно, я принимаю, сам недавно обсуждал эту тему в команде, чтобы "система" не пожирала ресурсы. Но разговор ушел немного в сторону, от противостояния goto и переменной состояния типа такого: void WhatToShowProcess(void)
{
switch (show_state)
{ case showREQUIRED_TEMP:
if ( (corr_state == corTUNING) ||
(corr_state == corSAVE ) )
show_state = showTUNING_TEMP;
else
{ if ( (motor_delay > 0) &&
( motor_delay < SWITCH_SHOW_TIME_100MS - 1)
)
show_state = showMOTOR;
else
{ if ( (pump_delay>0) &&
( pump_delay < SWITCH_SHOW_TIME_100MS - 1 )
)
show_state = showPUMP;
}
}
break;
case showTUNING_TEMP:
if ( (corr_state != corTUNING) &&
(corr_state != corSAVE) )
show_state = showREQUIRED_TEMP;
break;
case showMOTOR:
break;
case showPUMP:
if (pump_delay == 0)
show_state = showREQUIRED_TEMP;
break;
}
}
Не дописано, к понедельнику задержки будут внутри автомата, как хотелось :)