Описание регистров 8-разрядного таймера-счетчика 0
Регистр управления таймером-счетчиком 0 - TCCR0
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
FOC0 |
WGM00 |
COM01 |
COM00 |
WGM01 |
CS02 |
CS01 |
CS00 |
TCCR0 |
Чтение/запись |
Чт. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
- Разряд 7 - FOC0: Принудительная установка результата сравнения
Функция бита FOC0 активна только, если с помощью бит WGM задан один из режимов, где нет широтно-импульсной модуляции. Однако в целях совместимости с последующими микроконтроллерами рекомендуется во время записи в регистр TCCR0 в позиции данного бита указывать лог. 0, если таймер работает в одном из режимов с широтно-импульсной модуляцией. Если записать лог. 1 в бит FOC0, то это приводит к принудительной установке результата сравнения на входе блока формирования выходного сигнала. Выход OC0 изменяется в соответствии с установками бит COM01, COM00. Следовательно, значение записанное в COM01, COM00 определяет эффект действия принудительной установки результата сравнения. Обратите также внимание, что бит FOC0 является стробирующим.
Строб FOC0 не генерирует каких-либо прерываний, а также не вызывает сброс таймера в режиме СТС, где регистр OCR0 задает верхний предел счета.
Бит FOC0 всегда считывается как 0.
- Разряд 6, 3 - WGM01:0: Режим работы таймера-счетчика 0
Данные биты определяют алгоритм счета счетчика, источник, который задает верхний предел счета и тип генерируемых прямоугольных импульсов. Данным таймером поддерживаются следующие режимы работы: нормальный режим, режим сброса при совпадении и два режима с широтно-импульсной модуляцией. В таблице 52 представлены режимы работы таймера-счетчика 0 (см. также "Режимы работы таймера-счетчика 0").
Таблица 52. Описание бит, задающих режим работы таймера-счетчика 0
Номер режима |
WGM01 |
WGM00 |
Наименование режима работы таймера-счетчика 0 |
Верхний предел счета |
Условие обновления содержимого регистра OCR0 |
Условие установки флага TOV0 |
0 |
0 |
0 |
Нормальный |
0xFF |
Сразу после записи в регистр |
Достижение максимального значения (0xFF) |
1 |
0 |
1 |
ШИМ с фазовой коррекцией |
0xFF |
Достижение верхнего предела счета |
Достижение минимального значения (0x00) |
2 |
1 |
0 |
Сброс при совпадении |
OCR0 |
Сразу после записи в регистр |
Достижение максимального значения (0xFF) |
3 |
1 |
1 |
Быстрая ШИМ |
0xFF |
Достижение верхнего предела счета |
Достижение максимального значения (0xFF) |
- Разряд 5:4 - COM01, COM00: Режим формирования выходного сигнала
Данные биты определяют алгоритм изменения сигнала на выводе OC0. Если значение данных бит ненулевое, то функция вывода OC0 как обычного порта ввода-вывода заменяется на альтернативную. Однако, следует учитывать, что направление этого вывода также управляется через регистр направления данных порта В (DDRB). Поэтому, для разрешения альтернативной функции вывода OC0 также необходимо установить бит 4 (OC0) в регистре DDRB для установки выходного направления.
После активизации альтернативной функции назначение бит COM01, COM00 зависит от выбранного режима работы таймера битами WGM01, WGM00. В таблице 53 приведено назначение бит COM01, COM00, если с помощью WGM01, WGM00 задан нормальный режим или режим сброса при совпадении (т.е. режимы без ШИМ).
Таблица 53. Режимы формирования выходного сигнала в режимах работы таймера 0 без ШИМ
COM01 |
COM00 |
Описание |
0 |
0 |
Функция обычного порта ввода-вывода. OC0 отключен. |
0 |
1 |
Переключение (инвертирование) OC0 при каждом совпадении |
1 |
0 |
Сброс OC0 при каждом совпадении |
1 |
1 |
Установка OC0 при каждом совпадении |
В таблице 54 приведено назначение бит COM01, COM00 для режима работы таймера-счетчика 0 с быстрой ШИМ (WGM01:0).
Таблица 54. Режимы формирования выходного сигнала в режиме таймера 0 с быстрой ШИМ(1)
COM01 |
COM00 |
Описание |
0 |
0 |
Функция обычного порта ввода-вывода. OC0 отключен. |
0 |
1 |
Зарезервировано |
1 |
0 |
Сброс OC0 при совпадении, установка по достижении верхнего предела (0xFF) |
1 |
1 |
Установка OC0 при совпадении, сброс по достижении верхнего предела (0xFF) |
Прим. 1: Имеется особый случай, когда OCR0 = 0xFF и COM01=1. В этом случае возникновение совпадения игнорируется, но сброс или установка по достижении верхнего предела выполняется. См. "Режим быстрой ШИМ".
В таблице 55 приведено действие бит COM01, COM00 для режима ШИМ с фазовой коррекцией, заданного с помощью бит WGM01, WGM00.
Таблица 54. Режимы формирования выходного сигнала в режиме ШИМ с фазовой коррекцией(1)
COM01 |
COM00 |
Описание |
0 |
0 |
Функция обычного порта ввода-вывода. OC0 отключен. |
0 |
1 |
Зарезервировано |
1 |
0 |
Сброс OC0 при совпадении во время прямого счета. Установка OC0 при совпадении во время обратного счета. |
1 |
1 |
Установка OC0 при совпадении во время прямого счета. Сброс OC0 при совпадении во время обратного счета. |
Прим. 1: Существует особый случай, когда OCR0=0xFF/0x00 и COM01=1. В этом случае OC0 всегда находится на постоянном логическом уровне 0 или 1, т.к. 0xFF и 0x00 -точки изменения направления счета и возникающее на них совпадение зачитывается только к одному из направлений счета: обратному или прямому (см. также "Режим ШИМ с фазовой коррекцией").
- Разряд 2:0 - CS02:0: Настройка частоты синхронизации таймера
С помощью трех настроечных бит имеется возможность выбрать различные тактовые частоты, кратные исходной частоте синхронизации (см. табл. 56).
Таблица 56. Выбор частоты синхронизации таймера 0
CS02 |
CS01 |
CS00 |
Описание |
0 |
0 |
0 |
Нет синхронизации. Таймер-счетчик 0 оставлен. |
0 |
0 |
1 |
clkT0S/1 (без предделения) |
0 |
1 |
0 |
clkT0S/8 (с предделением) |
0 |
1 |
1 |
clkT0S/32 (с предделением) |
1 |
0 |
0 |
clkT0S/64 (с предделением) |
1 |
0 |
1 |
clkT0S/128 (с предделением) |
1 |
1 |
0 |
clkT0S/256 (с предделением) |
1 |
1 |
1 |
clkT0S/1024 (с предделением) |
Регистр таймера-счетчика - TCNT0
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
TCNT0[7:0] |
TCNT0 |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Регистр таймера-счетчика характеризуется двунаправленностью доступа к 8-разрядному счетчику таймера 0. Запись в регистр TCNT0 блокирует отработку возникающего совпадения на следующем после записи такте синхронизации таймера. Изменение содержимого счетчика (TCNT0) во время счета связано с риском потери результата сравнения между TCNT0 и регистром OCR0.
Регистр порога сравнения - OCR0
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
OCR0[7:0] |
OCR0 |
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Регистр порога сравнения содержит 8-разр. значение, которое непрерывно сравнивается цифровым компаратором со значением 8-разр. счетчика (TCNT0). Факт совпадения значений может использоваться для генерации прерывания по выполнению условия сравнения или для генерации прямоугольных импульсов на выводе OC0.
|