Белов, А.В. Микроконтроллеры AVR: от азов программирования до создания практических устройств
388 Микроконтроллеры AVR от азов программирования... Рис. 6.17. Блок-схема сторожевого таймера Режимы работы В нормальном режиме работы необходимо, чтобы программа пери одически сбрасывала охранный таймер при помощи команды WDR. Программа должна быть написана таким образом, чтобы команда сброса всегда приходила раньше, чем содержимое таймера достигнет конца. Если система зависнет и перестанет перезапускать счетчик, то он досчи тает конца. Это вызовет прерывание или системный сброс. В результате программа начнет работать сначала. В режиме прерываний при истечении заданного времени система WDT вырабатывает запрос на прерывание. Этот запрос может использо ваться для пробуждения микроконтроллера из любого спящего режима. Пробуждение происходит таким же образом, как в случае прерыва ния от системного таймера. Один из вариантов использования такого режима — ограничение максимального времени выполнения некото рых операций. Таймер вызывает прерывание, если выполнение опера ции происходит дольше, чем положено. В режиме системного сброса при истечении заданного времени WDT вызывает системный сброс. Обычно это используется для того, чтобы предотвратить зависание системы в случае ошибки в программе. Третий режим объединяет возможности двух первых режимов. Сначала вызывается прерывание, а затем происходит системный сброс. Этот режим применяется, например, в том случае, когда перед вызовом системного сброса необходимо сохранить важные параметры. Если при помощи соответствующего fuse -переключателя (WDTON) выбран режим, при котором сторожевой таймер постоянно включен, то срабатывание этого таймера всегда вызывает сброс системы. При этом
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==