Всем привет! Есть библиотека таймера GyverTimer, на её основе делаю часы с отображением даты. Есть функция проверки заряда батарейки, если низкий то начинает "пищать" пищалка в течении 5 секунд. Проблема в том что после пищалки эти 5 секунд не учитываются потому как запускается цикл while.
Вопрос: Как обойти проблему, чтобы после срабатывания пищалки время работало правильно?
Вопрос: Как обойти проблему, чтобы после срабатывания пищалки время работало правильно?
C++:
if (tmr.isReady()){
seconds++;
if(seconds > 59){
mins ++;
if (mins > 59) {
mins = 0;
hrs++;
if (hrs > 23) {
hrs = 0;
day++;
for(int i = 0; i < 11; i++){
if(leap_years[i] == year) year_flag = true;
else year_flag = false;
}
if (year_flag && mounth == 02 && day == 29) {day = 1; mounth = 3;}
else if ((mounth == 1 || mounth == 3 || mounth == 5 || mounth == 7 || mounth == 8 || mounth == 10 || mounth == 12) && day > 31) {day = 1; mounth++;}
else if ((mounth == 4 || mounth == 6 || mounth == 9 || mounth == 11) && day > 30) {day = 1; mounth++;}
else mounth++;
if(mounth > 12){
mounth = 1;
year++;
}
}
}
}
disp.displayClockTwist(hrs, mins, 35);
}
Пищалка:
Now = millis();
while (millis () - Now < 5000) {
tone(piezo_pin, 500);
delay(500);
noTone(piezo_pin);
delay(250);
}