MicroPython:Библиотеки/machine/Класс WDT
Класс WDT – сторожевой таймер[1]
Сторожевой таймер используется для перезапуска системы, если приложение дало сбой и вошло в невосстановимое состояние. После запуска сторожевого таймера его никак нельзя остановить или перенастроить, и приложение должно периодически сбрасывать его, чтобы его таймаут не истек, так как в этом случае произойдет сброс системы.
Пример использования:
from machine import WDT
wdt = WDT(timeout=2000) # активируем сторожевой таймер
# с таймаутом в 2 миллисекунды
wdt.feed()
Доступность этого класса: pyboard, WiPy, esp8266, esp32.
Конструкторы
- Класс machine.WDT(id=0, timeout=5000) – создает объект WDT и запускает его. Значение в аргументе timeout должно быть задано в миллисекундах. После запуска сторожевого таймера его нельзя остановить, а таймаут – поменять.
Примечания: На ESP32 минимальное значение для таймаута – 1 миллисекунда. На ESP8266 таймаут задать нельзя, он задается самой системой.
Методы
• wdt.feed() – выполняет сброс сторожевого таймера, чтобы он не сбросил систему. Этот метод должен стоять в чувствительном разделе приложения, чтобы таймаут таймера был сброшен только после проверки того, что все функционирует правильно.