ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
915728 Топик полностью
VLLV (13.04.2019 14:14, просмотров: 208) ответил Скрипач на Переменная состояния - pt (см.мой пример, выше). Но она не читаема влоб. Это цена за использование прототридов.
А кто заставляет оформлять задержку как отдельное логическое состояние? Убогость goto? Функция самопроверки с симуляцией процесса проверки void fSelfTest(void) { switch (event) { case evNew: OffAll(); i_am_ready=0; other_error=0; Old(); if (RestoreAreasGroupError(ALL_BACKUP)) { other_error=erSetupChecksum; NEWS(stError); se.lang=ENGLISH; return; } if (!ValidData()) { other_error=erInvalidSetup; NEWS(stError); return; } if (!other_error) { OnFlag(eeprom_good); SetContrastDirect(se.Contrast); } SetLcdPos(1,2); self_test_counter=0; pcSLB(); FindStagnationVolume(); Old(); break; case ev100ms: if (!i_am_ready) printf(VLINE); self_test_counter++; if (self_test_counter>=16) { if ((se.ServicePin==0)|| (se.RemotePin==0) ) { other_error=erUnconfigured; NEWS(stError); } else { //if (se.OnFlag) //NEWS(stWaiting); { if (i_am_ready) return; ClrScr(); printl(mlPowerFailure); SetLcdPos(1,2); printl(mlPressEnter); i_am_ready=1; } // else NEWS(stSwitchOffState); } } break; case evUpDn: NEWS(stStartUserMenu); break; case evRemoteService: NEWS(stRemotePin); break; case evSt: if (i_am_ready) NEWS(stWaiting); break; } }