Описание регистров 8-разрядного таймера-счетчика 0

Регистр управления таймером-счетчиком 0 - TCCR0

  FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00
W/R R W/R W/R W/R W/R W/R W/R W/R
Исходное значение

Бит7 - FOC0. Принудительная установка результата сравнения. Функция бита FOC0 активна только, если с помощью бит WGM задан один из режимов, где нет широтно-импульсной модуляции. Однако в целях совместимости с последующими микроконтроллерами рекомендуется во время записи в регистр TCCR0 в позиции данного бита указывать 0, если таймер работает в одном из режимов с широтно-импульсной модуляцией. Если записать 1 в бит FOC0, то это приводит к принудительной установке результата сравнения на входе блока формирования выходного сигнала. Выход OC0 изменяется в соответствии с установками бит COM01, COM00. Следовательно, значение записанное в COM01, COM00 определяет эффект действия принудительной установки результата сравнения. Обратите также внимание, что бит FOC0 является стробирующим.

Строб FOC0 не генерирует каких-либо прерываний, а также не вызывает сброс таймера в режиме СТС, где регистр OCR0 задает верхний предел счета. БитFOC0 всегда считывается как 0.

Биты 6, 3 - WGM01:0. Режим работы таймера-счетчика 0. Данные биты определяют алгоритм счета счетчика, источник, который задает верхний предел счета и тип генерируемых прямоугольных импульсов. Данным таймером поддерживаются следующие режимы работы: нормальный режим, режим сброса при совпадении и два режима с широтно-импульсной модуляцией. В таблице 2.36 представлены режимы работы таймера-счетчика 0.

Таблица 2.36. Описание бит, задающих режим работы

таймера-счетчика 0

Номер режима WGM01 WGM00 Наименование режима работы таймера-счетчика0 Верхний предел счета Условие обновления содержимого регистра OCR0 Условие установки флага TOV0
Нормальный 0xFF Сразу после записи в регистр Достижение максимального значения (0xFF)
ШИМ с фазовой коррекцией (ФК) 0xFF Достижение верхнего предела счета Достижение минимального значения (0x00)
Сброс при совпадении OCR0 Сразу после записи в регистр Достижение максимального значения (0xFF)
Быстрая ШИМ 0xFF Достижение верхнего предела счета Достижение максимального значения (0xFF)

Биты 5:4 - COM01, COM00. Режим формирования выходного сигнала. Данные биты определяют алгоритм изменения сигнала на выводе OC0. Если значение данных бит ненулевое, то функция вывода OC0 как обычного порта ввода-вывода заменяется на альтернативную. Однако, следует учитывать, что направление этого вывода также управляется через регистр направления данных порта В (DDRB). Поэтому, для разрешения альтернативной функции вывода OC0 также необходимо установить бит 4 (OC0) в регистре DDRB для установки выходного направления.

После активизации альтернативной функции назначение бит COM01, COM00 зависит от выбранного режима работы таймера битами WGM01, WGM00. В таблице 2.37 приведено назначение бит COM01, COM00, если с помощью WGM01, WGM00 задан нормальный режим или режим сброса при совпадении (т.е. режимы без ШИМ).

Таблица 2.37. Режимы формирования выходного сигнала

в режимах работы таймера 0 без ШИМ

COM01 COM00 Описание
Функция обычного порта ввода-вывода. OC0 отключен.
Переключение (инвертирование) OC0 при каждом совпадении
Сброс OC0 при каждом совпадении
Установка OC0 при каждом совпадении

В таблице 2.37 приведено назначение бит COM01, COM00 для режима работы таймера-счетчика 0 с быстрой ШИМ (WGM01:0).

Таблица 2.38. Режимы формирования выходного сигнала в режиме таймера 0 с быстрой ШИМ

COM01 COM00 Описание
Функция обычного порта ввода-вывода. OC0 отключен.
Зарезервировано
Сброс OC0 при совпадении, установка по достижении верхнего предела (0xFF)
Установка OC0 при совпадении, сброс по достижении верхнего предела (0xFF)

Примечание. Имеется особый случай, когда OCR0 = 0xFF и COM01=1. В этом случае возникновение совпадения игнорируется, но сброс или установка по достижении верхнего предела выполняется.

В таблице 2.39 приведено действие бит COM01, COM00 для режима ШИМ с фазовой коррекцией (ФК), заданного с помощью бит WGM01, WGM00.

Таблица 2.39. Режимы формирования выходного сигнала в режиме ШИМ с фазовой коррекцией

COM01 COM00 Описание
Функция обычного порта ввода-вывода. OC0 отключен.
Зарезервировано
Сброс OC0 при совпадении во время прямого счета. Установка OC0 при совпадении во время обратного счета.
Установка OC0 при совпадении во время прямого счета. Сброс OC0 при совпадении во время обратного счета.

Примечание. Существует особый случай, когда OCR0=0xFF/0x00 и COM01=1. В этом случае OC0 всегда находится на постоянном логическом уровне 0 или 1, т.к. 0xFF и 0x00 -точки изменения направления счета и возникающее на них совпадение зачитывается только к одному из направлений счета: обратному или прямому.

Биты2:0 - CS02:0. Настройка частоты синхронизации таймера. С помощью трех настроечных бит имеется возможность выбрать различные тактовые частоты, кратные исходной частоте синхронизации (табл. 2.40).

Таблица 2.40. Выбор частоты синхронизации таймера 0

CS02 CS01 CS00 Описание
Нет синхронизации. Таймер-счетчик 0 оставлен
clkT0S/1 (без предделения)
clkT0S/8 (с предделением)
clkT0S/32 (с предделением)
clkT0S/64 (с предделением)
clkT0S/128 (с предделением)
clkT0S/256 (с предделением)
clkT0S/1024 (с предделением)

Регистр таймера-счетчика - TCNT0

  TCNT0[7:0]
W/R W/R W/R W/R W/R W/R W/R W/R W/R
Исходное значение

Регистр таймера-счетчика характеризуется двунаправленностью доступа к 8-разрядному счетчику таймера 0. Запись в регистр TCNT0 блокирует отработку возникающего совпадения на следующем после записи такте синхронизации таймера. Изменение содержимого счетчика (TCNT0) во время счета связано с риском потери результата сравнения между TCNT0 и регистром OCR0.

Регистр порога сравнения - OCR0

  OCR0[7:0]
W/R W/R W/R W/R W/R W/R W/R W/R W/R
Исходное значение

Регистр порога сравнения содержит 8-разрное значение, которое непрерывно сравнивается цифровым компаратором со значением 8-разрядного счетчика (TCNT0). Факт совпадения значений может использоваться для генерации прерывания по выполнению условия сравнения или для генерации прямоугольных импульсов на выводе OC0. Кроме того, этот режим работы Т/С может быть использован для построения различных счетчиков по учету газа, электрической энергии и др. приборов учета.

Наши рекомендации