Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное_пособие.doc
Скачиваний:
70
Добавлен:
10.11.2019
Размер:
8.13 Mб
Скачать
      1. Сторожевой таймер (Watchdog Timer).

Сторожевой таймер используется для выхода из “зависания”, которое может произойти при работе микроконтроллера в условиях сильных помех. Аппаратно сторожевой таймер представляет собой суммирующий 16-разрядный счетчик. При его переполнении формируется внутренний сигнал сброса микроконтроллера.

Принцип использования сторожевого таймера. Приложение, кроме выполнения рабочих функций, должно обеспечивать периодический сброс сторожевого таймера. Правильно работающее приложение должно периодически обнулять сторожевой таймер. Если приложение будет повреждено, то сторожевой таймер по окончании цикла счета произведет сброс программы.

Сторожевой таймер такти­руется отдельным встроенным генератором с частотой 1 мГц. Установкой коэффициента деления тактовой частоты можно изменять длительность интервала до сброса по сторожевому таймеру от 16 тыс. до 2048 тыс. циклов (от 16 до 2048 мс). Программно сторожевой таймер сбрасывается командой WDR (Watchdog Reset).

С момента сброса сторожевого таймера до завершения внутреннего сброса микроконтроллера длится период времени, который зависит от коэффициента деления тактовой частоты таймера. Если этот период завершился и другой сигнал сброса сторожевого таймера не поступил, мик­роконтроллер начинает работу с вектора сброса.

Прежде, чем разрешать сторожевой таймер, необходимо выполнить команду WDR и загрузить значение в счетчик.

Регистр управления сторожевым таймером – WDTCR

7

6

5

4

3

2

1

0

WDTCR

$21($41)

WDTOE

WDE

WDP2

WDP1

WDP0

Исх. код

0

0

0

0

0

0

0

0

Рисунок 30

WDTCR.7..5 -Зарезервированные биты.

WDTCR.4 - WDTOE: Бит разрешения отключения сторожевого таймера. Этот бит должен быть установлены (=1) при очистке бита WDE. Иначе сторожевой таймер не будет запрещен. Если бит WDTOE уста­новлен, то сторожевой таймер аппаратно очищается через четыре тактовых цикла.

WDTCR.3 - WDE: Бит разрешения сторожевого таймера. Если бит WDE установлен (=1), то сторожевой таймер разрешен. Если бит WDE очищен (=0), то функционирование сторожевого таймера запреще­но. Бит WDE может быть очищен только если установлен бит WDTOE.

WDTCR.2..0 - WDP2, WDP1, WDPO: Биты установки коэффици­ента предварительного деления сторожевого таймера. Состояние битов WDP2, WDP1 и WDPO определяет коэффициент деления тактовой час­тоты сторожевого таймера.

Для запрещения работы сторожевого таймера необходимо выполнить следующую процедуру:

Таблица 25 Коэффициенты деления частоты сторожевого таймера

WD2

WDP1

WDP0

Длительность цикла

сторожевого таймера

Длительность периода

сброса (Vcc= 5,0В), мс

0

0

0

16 тыс. циклов

15

0

0

1

32 тыс. циклов

30

0

1

0

64 тыс. циклов

60

0

1

1

128 тыс. циклов

120

1

0

0

256 тыс. циклов

240

1

0

1

512 тыс. циклов

490

1

1

0

1024 тыс. циклов

970

1

1

1

2048 тыс. циклов

1900

  • Одной командой записать 1 в WDTOE и WDE. Логическая 1 должна быть записана в WDE, даже если этот бит был установлен перед началом операции запрета сторожевого таймера.

  • За время последующих четырех циклов записать логический 0 в WDE. Сторожевой таймер будет запрещен.