Описание регистров 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. Кроме того, этот режим работы Т/С может быть использован для построения различных счетчиков по учету газа, электрической энергии и др. приборов учета.