Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
288
Добавлен:
20.06.2014
Размер:
1.06 Mб
Скачать
          1. Устройство сравнения таймера t2

Структура устройства сравнения приведена на рис.

Рис. Структура устройства сравнения

8-битный компаратор непрерывно сравнивает счетный регистр TCNT2 с регистром OCR2 (Output Compare Register). Флаг OCF2 (Output Compare Flag) устанавливается в следующем такте после того, как значения TCNT2 и OCR2 станут равны. Если I=1 и OCIE2=1, OCF2 генерирует соответствующее прерывание. Флаг OCF2 сбрасывается после перехода к обработчику прерывания. Также он может быть сброшен программно записью в него логической единицы.

Генератор сигнала использует сигнал совпадения для генерации сигнала на выходе в соответствии с режимом генерации сигнала, заданным битами WGM21:0, и режимом работы выхода, заданным битами COM21:0 (Compare Output mode).

В режимах, отличных от ШИМ, выход OC2 может быть принудительно активирован установкой бита FOC2 (Force Output Compare) регистра TCCR2. При этом флаг OCF2 не устанавливается, таймер не сбрасывается и не перезапускается.

Запись процессором регистра TCNT2 блокирует сравнение на один такт, даже если таймер остановлен. Это позволяет инициализировать OCR2 тем же значением, что и TCNT2.

Рис. Схема формирования сигнала на выходе OC2

Бит OC2, соответствующий выводу PD7, должен быть предварительно настроен на вывод с помощью регистра направления порта D DDRD.

Режимы работы определяются комбинацией битов WGM21:0 (Waveform Generation mode) и COM21:0 (Compare Output mode) регистра TCCR2.

        1. Режимы работы таймера t2

          1. Режим Normal

Самый простой режим — Normal (WGM21:0 = 0). В этом режиме счетчик считает вверх и никогда не сбрасывается. Счетчик просто переходит через максимальное значение 0xFF к 0x00 и начинает счет заново. В этом режиме флаг переполнения TOV2 будет установлен в такте, когда TCNT2 станет равным нулю. Новое значение TCNT2 может быть записано в него в любой момент. Использовать сравнение для генерации сигнала в нормальном режиме не рекомендуется, поскольку это занимает слишком много процессорного времени.

          1. Режим ctc

В режиме CTC (рис.) (Clear Timer on Compare, сброс при совпадении) (WGM21:0 = 2) регистр OCR2 используется для управления разрешением счетчика, поскольку задает максимальное значение счета. В этом режиме TCNT2 сбрасывается, когда его значение становится равным OCR2. Этот режим удобен для управления частотой выходного сигнала и подсчета внешних событий.

Рис. Временная диаграмма режима CTC.

Горизонтальные штрихи на рисунке иллюстрируют совпадение значений регистров OCR2 и TCNT2.

При совпадении TCNT2 и OCR2 устанавливается флаг OCF2 и генерируется соответствующее прерывание. Обработчик прерывания может изменить значение OCR2.

Частота сигнала определяется следующей формулой:

где N — коэффициент деления частоты: 1, 8, 32, 64, 128, 256 или 1024.

Период сигнала может изменяться.

Прерывание по переполнению в этом режиме генерируется, если счетчик переходит максимальное значение.

          1. Режим быстрой шим (fast pwm mode)

Режим быстрой ШИМ (рис.) (fast PWM, FPWM) (WGM21:0 = 3) предоставляет возможность генерации сигнала высокой частоты.

Частота сигнала определяется следующей формулой:

,

где N — коэффициент деления частоты.

Рис. Временная диаграмма работы таймера в режиме быстрой ШИМ

Счетчик считает от BOTTOM до MAX, затем снова от BOTTOM до MAX и т. д. Таким образом, период сигнала не изменяется.

В неинверсном режиме выход OC2 сбрасывается при совпадении TCNT2 и OCR2 и устанавливается при BOTTOM. В инверсном режиме выход OC2 устанавливается при совпадении TCNT2 и OCR2 и сбрасывается при BOTTOM.

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

Флаг переполнения устанавливается при переходе счетчика через значение MAX. Обработчик прерывания может изменить значение OCR2.

Крайние значения регистра OCR2 представляют специальные случаи генерации сигнала:

  • OCR2=BOTTOM — выходной сигнал является узким импульсом при каждом MAX+1 такте;

  • OCR2=MAX — выходной сигнал является постоянной единицей или нулем.