millis обнуляется через 50 дней беспрерывной работы
Если сработал WatchDog Timer то все регистры обнуляются, потому что происходит сброс контроллера.
Вид для печати
millis обнуляется через 50 дней беспрерывной работы
Если сработал WatchDog Timer то все регистры обнуляются, потому что происходит сброс контроллера.
Это я прочитал. А что есть "прерывание" работы кроме снятия питающего напряжения? RESET - прерывание работы? А "софтовый" перезапуск таймера?
Это я тоже представляю, но не знаю, где хранится величина, возвращаемая millis. Если в регистре, то значит будет обнуляться?Цитата:
Если сработал WatchDog Timer то все регистры обнуляются, потому что происходит сброс контроллера.
Я тут "в начале" и не совсем... :) Если правильно я понял, то: при WatchDog - обнулится. При RESET - обнулится. При начале нового цикла loop - НЕ обнулится?
ПРо таймер - в библиотеке timer есть функция сброса таймера setTimer() - вот я её имел ввиду - с её помощью можно обнулить Millis()? Ну и ли по другому - как в тексте скетча сделать обнуление millis()?
Первая часть правильно, вторая, про таймер, неправильно.
setTimer и библиотека timer никакого отношения к функции millis() не имеет.
Если хочется "обнулить" millis(), то надо использовать свою переменную, записав в нее значение millis() в момент обнуления, а затем вычитать это значение из результата millis(), тогда, когда надо выполнить отсчет времени.
примерно так:
long t0; // глобальная переменная
...
t0 = millis(); // "обнуление"
...
t = millis() - t0; // получение интервала времени, с учетом обнуления
...
По моему проще таймер настроить и использовать свою переменную