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

Регистр А управления таймером-счетчиком n – TCCRnA

(где n=1или 3).

COMnA1 COMn A0 COMn B1 COMn B0 COMn C1 COMn C0 WGM n1 WGM n0

Биты 7:6–COMnA1:0. Режим формирования выходного сигнала канала A.

Биты 5:4–COMnB1:0. Режим формирования выходного сигнала канала В.

Биты 3:2–COMnC1:0. Режим формирования выходного сигнала канала С.

Биты COMnA1:0, COMnB1:0 и COMnC1:0 влияют на работу выводов OCnA, OCnB и OCnC, соответственно. Если один или оба бита COMnA1:0 равны 1, то вывод OCnA переходит к выполнению альтернативной функции, запрещая его работу как обычного порта ввода-вывода. Аналогичные изменения происходят с выводами OCnB и OCnC во время записи 1 в один из битов COMnB1:0 и COMnC1:0, соответственно. Однако необходимо учитывать, что остается влияние на работу данных выводов со стороны регистра направления данных (DDR) и в соответствующих разрядах этого регистра должно быть задано выходное направление для выводов OCnA, OCnB или OCnC.

Биты 1:0 - WGM n1:n0.Режимы работы таймера-счетчика (см. табл. 2.41).

Регистр В управления таймером-счетчиком n – TCCRnB

Разряд
  ICNCn ICESn - WGMn3 WGMn2 CSn2 CSn1 CSn0

Бит 7 – ICNCn. Подавитель шума на входе захвата. Установка данного бита (запись 1) активизирует подавитель шума на входе захвата. После активизации подавителя шумов сигнал с вывода ICPn пропускается через фильтр. Логика работы фильтра состоит в определении четырех подряд равных по значению выборок и только в этом случае изменении своего выходного состояния. Следовательно, после разрешения подавления шумов сигнал с входа захвата будет задерживаться на 4 такта системной синхронизации.

Бит 6 – ICESn. Выбор детектируемого фронта на входе захвата. Данный бит позволяет задать, какой фронт на входе захвата ICPn приведет к захвату состояния таймера. Если ICESn =0, то падающий (отрицательный) фронт приводит к захвату состояния таймера, а если же ICESn = 1, то нарастающий (положительный) фронт приводит к возникновению захвата.

Если в соответствии с установкой ICESn возникает условие захвата, то содержимое счетчика копируется в регистр захвата ICRn. При этом также устанавливается флаг захвата ICFn, который может использоваться для генерации прерывания по захвату (если данное прерывание разрешено).

Если регистр ICRn используется для хранения значения верхнего предела счета, то вход ICPn отключается от соответствующего вывода микроконтроллера и функция захвата блокируется.

Бит 5– Зарезервированный бит. Данный бит зарезервирован для дальнейшего использования. В целях совместимости с будущими разработками рекомендуется во время записи в регистр TCCRnB в данном разряде указывать 0.

Биты 4:3 – WGMn3:2. Режим работы таймера-счетчика (см. описание регистра TCCRnA).

Биты 2:0 – CSn2:0. Выбор тактового источника (табл. 2.42). Данный три бита позволяют выбрать тактовый источник для таймера-счетчика

Таблица 2.42. Описание бит выбора тактового источника

CSn2 CSn1 CSn0 Описание
Нет синхронизации. Таймер-счетчик остановлен.
clkI/O/1 (без предделения)
clkI/O /8 (с предделением)
clkI/O/64 (с предделением)
clkI/O/256 (с предделением)
clkI/O/1024 (с предделением)
Внешний тактовый источник с вывода Tn. Синхронизация по падающему фронту.
Внешний тактовый источник с вывода Tn. Синхронизация по нарастающему фронту.

Если для тактирования таймера выбран внешний вывод Tn, то данная функция за ним сохраняется, даже при его настройке на вывод. Данная функция позволяет программно управлять счетом.

Регистр С управления таймером-счетчиком n – TCCRnC

Разряд
  FOCnA FOCnB FOCnC - - - - -

Бит 7 – FOCnA. Бит принудительной установки результата сравнения для канала A

Бит 6 – FOCnB. Бит принудительной установки результата сравнения для канала B

Бит 5 – FOCnC. Бит принудительной установки результата сравнения для канала C

Биты FOCnA/FOCnB/FOCnC становятся активными, когда с помощью бит WGMn3:0 выбран режим без ШИМ. В этом случае запись в FOCnA/FOCnB/FOCnC 1 приводит к немедленной установке результата сравнения на входе блока формирователя сигнала. Выход OCnA/OCnB/OCnC изменяется в соответствии с установками бит COMnx1:0. Обратите внимание, что биты FOCnA/FOCnB/FOCnC реализованы как стробы. Стробы FOCnA/FOCnB/FOCnC не генерируют каких-либо прерываний и сбрасывают счетчик в режиме сброса таймера при совпадении (CTC), где OCRnA используется для задания вершины счета.

При чтении бит FOCnA/FOCnB/FOCnB всегда возвращается нулевое значение.

Биты 4:0 – Зарезервированные биты.

Таймер-счетчик n – TCNTnH и TCNTnL

TCNTnH TCNTn[15:8]
TCNTnL TCNTn[7:0]
Исходное значение

Две ячейки в области ввода-вывода (TCNTnH и TCNTnL, вместе TCNTn) дают полный доступ, как на чтение, так и на запись к 16-разрядному счетчику. В целях гарантирования одновременности чтения и записи старшего и младшего байтов этих регистров, доступ организован с использованием 8-разрядного временного регистра старшего байта (TEMP). Временный регистр является общим для всех 16-разрядных регистров таймера.

Изменение содержимого счетчика TCNTn во время его работы (счета) связано с риском возникновения совпадения между TCNTn и одним из регистров OCRnx. Запись в регистр TCNTn блокирует отработку совпадения, которое возникнет на следующем такте, для всех блоков сравнения.

Контрольные вопросы

1. Назначение Таймер/Счетчика (Т/С).

2. Режимы работы Т/С.

3. Что является основным элементом Т/С?

4. В чем заключается функция захвата Т/С? Приведите пример использования Т/С в режиме захвата.

5. В чем заключается функция сравнения Т/С? Приведите пример использования Т/С в режиме сравнения.

6. В чем заключается функция широтно-импульсного модулятора Т/С? Приведите пример использования Т/С в режиме широтно-импульсного модулятора.

7. В чем заключается функция счета реального времени Т/С? Приведите пример использования Т/С в режиме счета реального времени.

8. Для чего используется предделитель тактовой частоты в Т/С?

9. На какие режимы работы можно настроить Т/С? Приведите примеры настройки Т/С.

10. Регистр управления таймером-счетчиком 0 - ТCCR0. Назначение битов регистра ТCCR0.

11. Приведите пример загрузки управляющего слова в регистр управления ТCCR0. Какие команды для этого можно использовать?

12. Регистр таймера-счетчика - TCNT0 и его назначение. Приведите пример загрузки данных в регистр TCNT0.

13. Регистр порога сравнения - OCR0 и его назначение. Приведите пример загрузки данных в регистр OCR0.

14. 16-разрядные таймеры-счетчики, назначение и их основные отличительные особенности.

15. Назовите источники тактовых импульсов Т/С. Как их выбирать? Приведите пример выбора.

16. Как производится доступ к 16-разрядным регистрам Т/С? Приведите фрагмент программы чтение 16-разрядных регистров Т/С.

17. Приведите фрагмент программы настройки Т/С для работы в режиме сравнения (захвата, ШИМ).

18. Регистр А управления таймером-счетчиком n – TCCRnA (где n=1или 3). Назначение битов регистра TCCRnA.

19. Регистр В управления таймером-счетчиком n – TCCRnВ (где n=1или 3). Назначение битов регистра TCCRnВ.

20. Регистр С управления таймером-счетчиком n – TCCRnС (где n=1или 3). Назначение битов регистра TCCRnС.

21. Назовите области использования Т/С.

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