|
Предыдущий
<< $21
($41) WDTCR >>Следующий
Предназначение
сторожевого таймера предельно
простое - не допускать "зависания"
программы. Будучи включенным, он
через определенный интервал времени
произведет сброс МК, если в
течение этого интервала программа не
перезапустит его.
Любая
программа МК обязательно имеет
какой-то бесконечный цикл.
Приблизительно зная максимальную
длительность этого цикла, делитель
таймера устанавливается на заведомо
большее время. При старте программы WDT
запускается, а в бесконечном рабочем
цикле - перезапускается. В случае же
ошибки программы (например,
зацикливание) перезапуска
сторожевого таймера не будет, и через
определенное время программа будет
сброшена.
Зачем
это надо? Ну, например, управляет МК
двигателем. Запускает двигатель. И
после этого где-то зависает -ведь не
бывает программ без ошибок - а
двигатель-то крутится. Доезжает до
ограничения и или ломает его, либо
сгорает сам... Это, конечно, грубый
пример, но суть ясна.
При
грамотном конструировании
микроконтроллерного устройства при
сбросе все воздействия должны быть
нейтральными. Тогда при сбросе время
неуправляемой работы того же
двигателя будет определяться
периодом WDT
|