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

1.10.2. Таймер/счетчик 1 – t/c1

16-разрядный таймер/счетчик 1 может получать тактовый сигнал от тактового генератора, после предварительного делителя и от внешнего вывода. Кроме того его можно остановить, как показано в описании регистра управления таймером/счетчиком 1 – TCCR1B (Timer/Counter1 Control Register). В регистрах управления TCCR1A и TCCR1B находятся различные флаги, указывающие на переполнение, совпадение при сравнении и случаи захвата событий. В регистре масок прерываний TIMSK (Timer/Counter Interrupt Mask Register) устанавливаются разрешения/запрещения прерываний таймера/счетчика 1. При внешнем тактировании таймера/счетчика 1 внешний сигнал синхронизируется частотой тактового генератора CPU. Для правильной работы таймера/счетчика 1 по внешнему тактовому сигналу минимальное время между двумя переключениями внешнего тактового сигнала должно быть не менее одного периода тактового сигнала CPU. Синхронизация внешнего тактового сигнала ведется нарастающим фронтом внутреннего тактового сигнала CPU.

Наилучшие точность и разрешение 16-разрядный таймер/счетчик 1 обеспечивает при наименьшем коэффициенте предварительного деления. С другой стороны, высокий коэффициент предварительного деления удобен при реализации таймером/счетчиком 1 низкоскоростных функций или точной синхронизации редко происходящих действий.

Таймер/счетчик 1 поддерживает две функции сравнения выхода, используя регистр1 сравнения выходов A и B –OCR1A и OCR1B в качестве источников данных, сравниваемых с содержимым таймера/счетчика1. Функции сравнения выхода включают очистку счетчика по совпадению сравнения A и воздействие на выводы сравнения выхода при обоих совпадениях сравнения.

Таймер/счетчик 1 может быть использован в качестве 8, 9 или 10-разрядного широтно-импульсного модулятора. В этом режиме счетчик и регистры OCR1A/OCR1B работают как сдвоенный самостоятельный ШИМ со сцентрированными импульсами, без формирования ложных импульсов.

Функция захвата входа таймера/счетчика 1 обеспечивает захват содержимого таймера/счетчика 1 в регистр захвата входа, запускаемый внешним событием на выводе входа захвата PD4/(IC1). Реальные установки захвата события определяются регистром управления таймером/счетчиком 1 TCCR1B (Timer/Counter1 Control Register). Подробно описание работы T/C1 в [1].

1.11. Сторожевой таймер (Watchdog Timer)

Сторожевой таймер (WatchDog Timer) предназначен для предотвращения катастрофических последствий от случайных сбоев программы. Идея использования стоpожевого таймера предельно проста и состоит в pегуляpном его сбpасывании под упpавлением пpогpаммы или внешнего воздействия до того, как закончится его выдеpжка вpемени и не произойдет сброс пpоцессоpа. Если пpогpамма pаботает ноpмально, то команда сбpоса сторожевого таймеpа должна pегуляpно выполняться, пpедохpаняя поцессоp от сбpоса. Если же пpоцессоp случайно вышел за пpеделы пpогpаммы (напpимеp, от сильной помехи по цепи питания) либо зациклился на каком-либо участке пpогpаммы, команда сбpоса стоpожевого таймеpа не будет выполнена в течение достаточного вpемени и в результате пpоизойдет сбpос пpоцессоpа, инициализиpующий все pегистpы и пpиводящий систему в pабочее состояние.

Рис. 22. Структура сторожевого таймера

Сторожевой таймер тактируется отдельным встроенным генератором, работающим с частотой 1 МГц при типовом напряжении питания VCC=5 В (см. типовые значения при других значениях VCC). Установкой коэффициента предварительного деления можно изменять длительность интервала до сброса по сторожевому таймеру от 16 тыс. до 2048 тыс. циклов (от 16 до 2048 мс). Команда WDR (Watchdog Reset) сбрасывает сторожевой таймер.

С момента сброса сторожевого таймера можно установить восемь периодов длительности тактового сигнала, устанавливая, таким образом длительность периода сброса (тайм-аута). Если период сброса завершается (в течение этого периода не поступил сигнал сброса сторожевого таймера), то микроконтроллер ATmega8515 сбрасывается и его работа продолжается по вектору сброса.

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

Непосредственно перед включением сторожевого таймера рекомендуется выполнить сброс командой WDR. Для выключения или смены периода тайм-аута сторожевого таймера необходимо выполнить последовательность команд. Это сделано для того, чтобы свести к минимуму вероятность непреднамеренного изменения конфигурации сторожевого таймера.

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