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