Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursach.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
598.71 Кб
Скачать
  1. Принцип работы таймера

Таймер-счетчик О(ТО) выполняет лишь простые операции формирования временных интервалов и подсчета числа внешних событий. Основной блок таймера — восьмиразрядный счетчик, на вход которого поступают тактирующие сигналы с выхода мультиплексора МUХ8->1. Мультиплексор в зависимости от адресующего кода С50С52 выбирает для подачи на вход счетчика один из восьми сигналов. Выбор "заземленного" входа мультиплексора отключает счетчик, внешний сигнал может быть подан на счетчик в двух вариантах — как прямой или как инвертированный, а тактовые сигналы процессора — непосредственно или через делитель частоты с коэффициентами деления 8, 16, 256, 1024,согласно рисунка 3.

Рисунок 3 - Структура таймера 0 микросхемы А\/Р

Получая входные сигналы, счетчик ведет их подсчет и при переполнении (переходе от кода РРН к коду ООН) генерирует запрос на прерывание. Разрешение или запрещение прерываний от таймера регламентируются установкой или сбросом соответствующего бита в регистре масок прерываний. Таким образом, таймер ТО генерирует метки времени. Интервалы между этими метками зависят от выбора коэффициента деления делителя частоты. Счетчик доступен для записи и чтения в любое время.

Таймер 1 (Т1) тоже называется таймером-счетчиком, но он сложнее, чем таймер ТО, и способен выполнять и дополнительные функции. В его структуре повторяются схемы, входящие в состав таймера ТО, и присутствуют новые блоки, согласно рисунка 4.

Рисунок 4 - Структура таймера-счетчика Т1

В части схемы, подобной схеме таймера ТО, отличие состоит лишь в разрядности счетчика (счетного регистра). В таймере Т1 он не восьмиразрядный, а 16-разрядный. Новыми являются блоки 16-разрядного регистра захвата, двух 16-разрядных компараторов и двух 16-разрядных регистров совпадения (А и В).

К новым функциям относятся работа в режиме таймера событий или генератора ШИМ - сигналов. В первом из этих режимов используется регистр захвата, который в произвольный момент времени, задаваемый сигналом на внешнем входе или сигналом от аналогового компаратора, запоминает текущее состояние счетного регистра (захватывает его).

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

В ШИМ - режиме содержимое счетчика изменяется от нулевого до некоторого максимального (ТОР - значения), затем направление счета изменяется и содержимое счетчика, уменьшаясь, возвращается к нулевому значению, после чего такой цикл вновь повторяется, согласно рисунка 5.

Рисунок 5 - К пояснению процесса генерации

ШИМ - сигнала таймером Т1

Сторожевой таймер предназначен для отслеживания ситуаций, в которых МК неправильно выполняет программу, что может быть следствием воздействия помех, особенно опасных при работе МК в окружении мощного силового оборудования. Сторожевой таймер, переполняясь, вызывает сброс МК, если таймер не будет сброшен в течение определенного промежутка времени.

Сброс МК означает его перезапуск, после чего начинается новое выполнение программы. Таким образом, сторожевой таймер защищает работу системы от сбоев. Для управления работой сторожевого таймера (его включения/выключения и задания периода переполнения, называемого тайм-аутом) используются биты соответствующего управляющего регистра, согласно рисунку 6.

Рисунок 6 - Структура сторожевого таймера

Сторожевой таймер имеет независимый генератор тактовых сигналов (в МК АVR частота независимого генератора при напряжении питания 5 В равна 1 МГц, а при напряжении питания 3 В это 350 кГц). Независимый генератор сохраняет рабочее состояние сторожевого таймера даже в режиме глубокого понижения мощности Роwer Down, так что этот таймер может быть использован для "пробуждения" микроконтроллера, т. е. вывода его из состояния Роwer Down. Сбросы таймера происходят под воздействием команды WDR, а импульсы сброса/запуска контроллера выбираются мультиплексором с одного из восьми выходов счетчика.

Величина таймаута выбирается трехразрядным кодом WDP0 – WDP2, загруженным в регистр WDTCR. Включение сторожевого таймера производится установкой бита WDE в том же управляющем регистре.

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