[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Это таймер, который предназначен для формирования события после прохождения определённого времени. В микроконтроллерах такой пёс устроен так, что может быть сконфигурирован на определённое время, после которого формирует контроллеру аппаратный RESET. Есть специальная команда, которая позволяет сбросить таймер в ноль, и вот мы подходим к самому вкусному - берём эту самую команду, пихаем в основной цикл программы или в какие-либо повторяющиеся фрагменты (например, подпрограмма динамической индикации с прерыванием по таймеру) - и получаем гарантированный сброс контроллера в случае если через определённое время этот участок кода не выполнится - то есть если контроллер подвиснет. И грамотно написанный код тут не при чём - подвисание может произойти и от импульсных помех и от лунных приливов большой амплитуды :) Итак, В контроллерах watchdog применяется для формирования сброса при зависании. Весь сок в том, что это не таймер с программно организованной обработкой прерывания, а аппаратный, железный узел. Надёжность соответственно выше.
Обычно пёс позволяет конфигурировать себя с помощью внутренних регистров - включен, выключен, и время срабатывания.
E-mail: info@telesys.ru