Подозреваю проблема кроется в циклическом выполнении процедур
Код:
void obrabotka_ACC_OFF() и void obrabotka_ACC_ON()
После того, как добавил переменную
Код:
bool screen_on = false
, в которой хранится состояние экрана (on - off), и сделал изменения в указанных выше процедурах, обозначенная ранее ситуация исчезла:
void obrabotka_ACC_ON()
Код:
...
if (HALL_as_power_Switch == 1 && screen_on == false) {
if (millis() - pauseTimeACC >= SLEEP_timer_pri_vkl_ACC ) {SLEEP = 1;}//digitalWrite(SLEEPpin, 0); /*включаем экран*/
if (millis() - pauseTimeACC >= (SLEEP_timer_pri_vkl_ACC+vremia_uderjanija_najatoj_knopki_POWER) ) {
SLEEP = 0;
screen_on = true;
}
}
...
void obrabotka_ACC_OFF()
Код:
...
if (HALL_as_power_Switch == 1 && screen_on == true) {
if (millis() - pauseTimeACC >= SLEEP_timer_pri_vykl_ACC ) {SLEEP = 1;}//digitalWrite(SLEEPpin, 0); /*включаем экран*/
if (millis() - pauseTimeACC >= (SLEEP_timer_pri_vykl_ACC+vremia_uderjanija_najatoj_knopki_POWER) ) {
SLEEP = 0;
screen_on = false;
}
}
...
Откатал сегодня день, проблем пока не было.