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

          1. Назначение и свойства таймера t0

Таймер T0 — 8-разрядный одноканальный таймер-счетчик общего назначения (рис.), который может быть использован как:

  • одноканальный счетчик;

  • сбрасывающийся (автоматически перезагружаемый) таймер при совпадении сравниваемых значений;

  • широтно-импульсный модулятор, ШИМ, (PWM, Pulse Width Modulator);

  • генератор частоты;

  • счетчик внешних событий;

  • 10-битный делитель частоты;

  • источник прерывания по переполнению(TOV0) и совпадению (OCF0).

          1. Структура таймера t0

Рис. Схема структуры таймера T0

На схеме жирным шрифтом выделены программно-доступные регистры и отдельные биты.

Запросы прерываний таймера фиксируются в регистре флагов прерываний таймера (Timer Interrupt Flag Register, TIFR).

Они могут быть замаскированы с помощью регистра масок прерываний таймера (Timer Interrupt Mask Register, TIMSK).

Таймер может иметь внутренний, с предварительным делением частоты, или внешний, на входе T0, источник тактовых импульсов. При этом вход T0 является синхронным, т.е., сигнал на входе T0 сэмплируется один раз за каждый внутренний такт MCU. Поэтому для правильного подсчета входных тактовых импульсов (при скважности 0,5) необходимо, чтобы их частота была меньше, чем половина внутренней тактовой частоты контроллера.

Каждый импульс инкрементирует или декрементирует регистр TCNT0, значение которого в каждом такте сравнивается со значением регистра OCR0 (Output Compare Register). Результат сравнения может быть использован для генерации сигнала PWM или переменной частоты на выходе OC0 (Output Compare). Также при совпадении устанавливается флаг OCF0, который может быть использован для генерации соответствующего сигнала запроса прерывания.

Источник тактовых импульсов задается битами CS02:0 (Clock Select) регистра TCCR0 (Timer/Counter Control Register). Если не выбран никакой источник тактовых импульсов, таймер останавливается. Однако и в этом случае счетный регистр TCNT0 является доступным для CPU. Операция записи TCNT0 процессором имеет более высокий приоритет, чем внутренние текущие операции, например, счет или сброс.

Режим работы таймера определяется битами WGM01:0 регистра TCCR0. В соответствии с заданным режимом работы устанавливается флаг переполнения таймера TOV0 (Timer/Counter Overflow Flag), который может быть использован для генерации соответствующего прерывания.

          1. Регистры таймера t0

Таймер T0 содержит следующие регистры:

  • TCCR0 (Timer/Counter Control Register), регистр управления, определяет входной тактовый сигнал, задает режимы генерации сигнала и работы выхода;

  • TCNT0 (Timer/Counter Register), счетный регистр, считает такты внутреннего или внешнего, на входе T0, тактового сигнала;

  • OCR0 (Output Compare Register), регистр сравнения, содержит значение, которое в каждом такте сравнивается со значением TCNT0, при совпадении сравниваемых значений может быть сгенерировано прерывание или заданное изменение сигнала на выходе OC0.

Все регистры таймера T0 восьмибитные.