библиотека GyverTimer

dekort

✩✩✩✩✩✩✩
18 Дек 2018
11
0
Привет,
в данной библиотеки реализована проверка сброса millis() в 0 ? (происходит примерно через 50 дней)
 

AlexGyver

★★★★★✩✩
Команда форума
30 Июл 2018
196
421
Проверка - нет, но благодаря переполнению переменной таймера переход через 50 дней отрабатывается полностью корректно, таймер считается без сбивания периода
 

dekort

✩✩✩✩✩✩✩
18 Дек 2018
11
0
допустим у меня проработал контроллер 50 дней до переполнения осталось 30 минут, я засекаю очередной таймер на 2 часа. при обнуление millis () таймер не сработает давай вот такой код сделаем
C++:
boolean GTimer_ms::isReady() {
    if (!_state) return false;
    if ((long)millis() < _timer) {_timer = millis();}
    if ((long)millis() - _timer >= _interval) {
        if (_mode) _timer = millis();
        return true;
    } else {
        return false;
    }
}
тоесть добавить эту строку if ((long)millis() < _timer) {_timer = millis();}
описано тут
http://arduino.ru/forum/programmiro...a-nol-priblizitelno-cherez-50-dnei-kak-oboiti
 

dekort

✩✩✩✩✩✩✩
18 Дек 2018
11
0
можно кстати проверить на micros он переполниться через 70 минут , если таймер установить в 60 минут он по идеи сработает один раз только