Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AVR.doc
Скачиваний:
17
Добавлен:
26.04.2019
Размер:
2.79 Mб
Скачать

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

(Watchdog Timer Control Register)

Таблица 16. Формат регистра WDTCR

Биты

7

6

5

4

3

2

1

0

$21 ($41)

-

-

-

WDСE

WDE

WDP2

WDP1

WDP0

WDTCR

Чтение/Запись

R

R

R

R/W

R/W

R/W

R/W

R/W

Начальное состояние

0

0

0

0

0

0

0

0

Bits 7..5 - Res: - Зарезервированные биты. Эти биты в микроконтроллерах ATmega8515 зарезервированы и при считывании всегда будут 0.

Bit 4 - WDСE: - Разрешение отключения сторожевого таймера. Данный бит должен быть установлен в состояние 1 при очистке бита WDE. В ином случае сторожевой таймер не будет запрещен.

Bit 3 - WDE: - Разрешение сторожевого таймера. Если бит WDE установлен в состояние 1 (сторожевой таймер разрешен) и если бит WDE очищен, то функционирование сторожевого таймера запрещено. Бит WDE может быть очищен только если установлен бит WDСE.

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

1. В одной операции записать логическую 1 в WDСЕ и WDE. Логическая 1 должна быть записана в WDE даже если этот бит был установлен перед началом операции запрета сторожевого таймера.

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

Bits 2..0 - WDP2, WDP1, WDP0: - биты установки коэффициента предварительного деления сторожевого таймера. Состояния битов WDP2, WDP1 и WDP0 определяют коэффициент предварительного деления тактовой частоты разрешенного сторожевого таймера. Коэффициенты и соответствующие им промежутки времени представлены в таблице17.

Таблица 17. Выбор коэффициента предварительного деления тактовой частоты сторожевого таймера

WDP2

WDP1

WDP0

Длительность цикла сторожевого таймера

0

0

0

16 тыс. циклов

0

0

1

32 тыс. циклов

0

1

0

64 тыс. циклов

0

1

1

128 тыс. циклов

1

0

0

256 тыс. циклов

1

0

1

512 тыс. циклов

1

1

0

1024 тыс. циклов

1

1

1

2048 тыс. циклов

МК ATmega8515 предусматривает несколько «уровней безопасности» – (0,1,2), каждый из которых накладывает определенные ограничения по изменению конфигурации сторожевого таймера.

Уровень 0 – при включении МК сторожевой таймер выключен, но он может быть включен в любой момент времени, записью логической 1 в разряд WDE Rg WDTCR.

Уровень 1 – при включении МК сторожевой таймер включен. Для выключения сторожевого таймера необходимо одной командой записать логическую 1 в разряды WDE и WDСE, а в течение следующих четырех машинных циклов записать тоже одной командой 1 в WDE и 0 в WDСE. Для изменения периода тайм-аута необходимо одной командой записать логическую 1 в разряды WDE и WDTCE. В течение следующих четырех машинных циклов тоже одной командой установить WDE=1, WDTCE=0 и требуемые значения в разряды WDP2,1,0.

Уровень 2 – сторожевой таймер включен постоянно (WDE=1 всегда) и не может быть выключен. Для изменения периода тайм-аута необходимо одной командой записать логическую 1 в разряды WDE и WDСE, а в течение следующих 4 машинных циклов записать одной командой требуемые значения в разряды WDР2- WDР0, одновременно сбрасывая разряд WDСE. Значение записываемое в разряд WDE безразлично.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]