ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
954169 Топик полностью
VLLV (21.10.2019 12:11, просмотров: 744) ответил =AlexD= на Логика переходов в КА понятна ровно до того момента, пока в эту логику не пытаешься впихнуть ожидание кучи разных событий неблокируемым способом, после этого логика превращается в "тыкву", которую хрен поймёшь. ОСь позволяет неблокируемость
Вы говорите об автомате уровнем выше. Вместо переключения контекста с помощью ОС он может принудительно менять состояние управляемого автомата.  // автомат меню открывает кран воды: switch (wfr_state) { case WFR_SHOW_OFFER: OpenWater(); wfr_state++; break; ... // путем смены состояния низшего автомата void OpenWater(void) { valve_status=1; } // управления клапаном char WaterService(void) { char result=0; if (fill_timer) fill_timer--; switch (valve_status) { case 0: StopValve(); water_service_error=0; open_valve_time_ms=0; break; case 1: // start fill to down sensor StartValve(); ...