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

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

 

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

 

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

 

Разряды 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.

Если выбрано подключение сигналов OCnA, OCnB или OCnC к выводам микроконтроллера, то назначение бит COMnx1:0 определяется выбранным с помощью бит WGMn3:0 режима работы таймера-счетчика. В таблице 58 показано назначение бит COMnx1:0, когда битами WGMn3:0 выбран режим сброса при совпадении (СТС) или нормальный режим, т.е. режимы без ШИМ.

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

В таблице 59 представлено назначение бит COMnx1:0, когда с помощью бит WGMn3:0 выбран режим быстрой ШИМ.

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

Прим.: Имеются особые случаи, когда OCRnA/OCRnB/OCRnC равно верхнему пределу счета и установлен COMnA1/COMnB1/COMnC1. В этом случае возникшее совпадение игнорируется, но установка или сброс на вершине счета выполняется (см. “Режим быстрой ШИМ”).

В таблице 59 представлено назначение бит COMnx1:0 для режима ШИМ ФК и ШИМ ФЧК

Таблица 60 – Режим формирования выходного сигнала в режимах работы таймера с ШИМ ФК и ШИМ ФЧК

Прим.: Имеются особые случаи, когда OCRnA/OCRnB/OCRnC равно верхнему пределу и установлен COMnA1/COMnB1//COMnC1 (см. “Режим ШИМ с фазовой коррекцией”).

Разряд 1:0 – WGMn1:0: Режим работы таймера-счетчика

В сочетании с битами WGMn3:2 из регистра TCCRnB данные биты определяют алгоритм счета, источник для задания вершины счета (ВП) и тип генерируемой формы сигнала (см. табл. 61). Таймер-счетчик может работать в одном из следующих режимов: нормальный режим (счетчик), сброс таймера при совпадении (CTC) и три режима с широтно-импульсной модуляцией (ШИМ) (см. "Режимы работы 16-разр. таймеров-счетчиков").

Таблица 61 – Режимы работы таймера-счетчика

Прим.: 1. Наименования бит CTCn и PWMn1:0 являются устаревшими, поэтому, необходимо использовать имена WGMn2:0. Однако назначение и расположение этих бит совместимо с предыдущими версиями таймеров.

 

Разряд 7 – ICNCn: Подавитель шума на входе захвата

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

 

Разряд 6 – ICESn: Выбор детектируемого фронта на входе захвата

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

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

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

 

Разряд 5 – Зарезервированный бит

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

 

Разряд 4:3 – WGMn3:2: Режим работы таймера-счетчика

См. описание регистр TCCRnA.

 

Разряд 2:0 – CSn2:0: Выбор тактового источника

Данный три бита позволяют выбрать тактовый источник для таймера-счетчика (см. рисунок 55 и рисунок 56).

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

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

Разряд 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 – Зарезервированные биты

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

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

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

В регистрах сравнения хранится 16-разр. значение, которое непрерывно сравнивается со значением счетчика (TCNTn). Возникающее совпадение может использоваться для генерации прерывания по результату сравнения и генерации прямоугольных импульсов на выводе OCnx.

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

Регистры захвата обновляются содержимым соответствующего счетчика (TCNTn) при каждом определении условия захвата на входе ICPn (или альтернативно на выходе аналогового компаратора для таймера-счетчика 1).

Регистры захвата альтернативно могут использоваться для задания верхнего предела счета.

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

Регистр маски прерываний таймера-счетчика – TIMSK

Прим.: Данный регистр биты управления прерываниями для нескольких таймер-счетчиков, но в данном разделе детализированы только биты таймера 1. Описание остальных бит необходимо искать при описании соответствующих таймеров.

Разряд 5 – TICIE1: Разрешение прерывания по захвату состояния таймера-счетчика 1

Если в данный бит записана лог. 1, а также установлен флаг I в регистре статуса (активно общее разрешение прерываний), то разрешается прерывание по захвату состояния таймера-счетчика 1. Если устанавливается флаг в регистре TIFR, программа переходит на соответствующий вектор прерывания (см. раздел "Прерывания").

Разряд 4 – OCIE1A: Разрешение прерывания по результату сравнения канала А таймера-счетчика 1

Если в данный бит записана лог. 1 и установлен флаг I в регистре статуса, то разрешается работа прерывания по результату сравнения канала A. Если устанавливается флаг OCF1A в регистре TIFR, то программа переходит на соответствующий вектор прерываний (см. раздел "Прерывания").

Разряд 3 – OCIE1В: Разрешение прерывания по результату сравнения канала В таймера-счетчика 1

Действие аналогично предыдущему, но в отношении канала сравнения В.

Разряд 2 – TOIE1: Разрешение прерывания при переполнении таймера-счетчика 1

Если в данный бит записана лог. 1 и установлен флаг I в регистре статуса, то разрешается прерывание по переполнению таймера-счетчика 1. После этого, установка флага TOV1 в регистре TIFR приведет к переходу на соответствующий вектор прерывания.

Расширенный регистр маски прерываний таймера-счетчика– ETIMSK

Прим.: Данный регистр не доступен в режиме совместимости с ATmega103.

Разряд 7:6 – Зарезервированные биты

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

Разряд 5 – TICIE3: Разрешение прерывания по захвату состояния таймера-счетчика 3

Если в данный бит записана лог. 1 и установлен флаг I в регистре статуса, то разрешается работа прерывания по захвату состояния таймера-счетчика 3. Если устанавливается флаг ICF3 в регистре ETIFR, то программа переходит на соответствующий вектор прерывания (см. раздел "Прерывания").

Разряд 4 – OCIE3A: Разрешение прерывания по результату сравнения канала А таймера-счетчика 3

Если данный бит равен 1 и установлен флаг I в регистре статуса, то разрешается работа прерывания по результату сравнения канала А таймера-счетчика 3. Если устанавливается флаг OCF3A в регистре ETIFR, то программа переходит на соответствующий вектор прерывания (см. раздел "Прерывания").

Разряд 3 – OCIE3B: Разрешение прерывания по результату сравнения канала B таймера-счетчика 3

Аналогично предыдущему, но по отношению к каналу В.

Разряд 2 – TOIE3: Разрешение прерывания по переполнению таймера-счетчика

Если в данный бит записана лог. 1 и установлен флаг I в регистре статуса, то разрешается прерывание по переполнению таймера-счетчика 3. После этого, установка флага TOV3 в регистре ETIFR приведет к переходу на соответствующий вектор прерывания (см. раздел "Прерывания").

Разряд 1 – OCIE3C: Разрешение прерывания по результату сравнения канала С таймера-счетчика 3

Если данный бит равен 1 и установлен флаг I в регистре статуса, то разрешается работа прерывания по результату сравнения канала С таймера-счетчика 3. Если устанавливается флаг OCF3C в регистре ETIFR, то программа переходит на соответствующий вектор прерывания (см. раздел "Прерывания").

Разряд 0 – OCIE3C: Разрешение прерывания по результату сравнения канала С таймера-счетчика 1

Если данный бит равен 1 и установлен флаг I в регистре статуса, то разрешается работа прерывания по результату сравнения канала С таймера-счетчика 1. Если устанавливается флаг OCF1C в регистре ETIFR, то программа переходит на соответствующий вектор прерывания (см. раздел "Прерывания").

Регистр флагов прерываний таймеров-счетчиков – TIFR

Прим.: Биты данного регистра относятся к нескольким таймерам, но в данном параграфе рассматриваются биты только одного таймера. Описание остальных бит необходимо смотреть в соответствующих разделах.

Разряд 5 – ICF1: Флаг захвата состояния таймера-счетчика 1

Флаг устанавливается, если на входе ICP1 определяется условие захвата. Если регистр захвата ICR1 выбран с помощью бит WGMn3:0 в качестве источника верхнего предела счета, флаг ICF1 устанавливается по достижении верхнего предела счета.

ICF1 автоматически сбрасывается при переходе на вектор прерывания по захвату состояния таймера-счетчика. Альтернативно флаг ICF1 можно сбрасывать путем записи в него лог. 1.

Разряд 4 – OCF1A: Флаг результата сравнения канала А таймера-счетчика 1

Данный флаг устанавливается следующим тактом после совпадения значения TCNT1 с регистром А порога сравнения (OCR1A).

Обратите внимание, что строб принудительной установки результата сравнения (FOC1A) не устанавливает флаг OCF1A. Флаг OCF1A автоматически сбрасывается при переходе на соответствующий вектор прерывания. Альтернативно, флаг OCF1A сбрасывается путем записи в него лог. 1.

Разряд 3 – OCF1B: Флаг результата сравнения канала B таймера-счетчика 1

Данный флаг действует аналогично предыдущему, но в отношении канала сравнения В.

Разряд 2 – TOV1: Флаг переполнения таймера-счетчика 1

Установка данного флага зависит от значений бит WGMn3:0. В нормальном режиме и режиме СТС флаг TOV1 устанавливается при переполнении таймера-счетчика. См. табл. 61 для изучения поведения флага TOV1 при задании других значений WGMn3:0. Флаг TOV1 автоматически сбрасывается при переходе на вектор прерывания по переполнению таймера-счетчика 1. Альтернативно флаг TOV1 сбрасывается путем записи в него лог. 1.

Расширенный регистр флагов прерываний таймеров-счетчиков – ETIFR

Разряды 7:6 – Зарезервированные биты

Данные биты зарезервированы для дальнейшего использования. В целях совместимости с последующими версиями необходимо в данные разряды записывать лог. 0 во время записи в регистр ETIFR.

Разряд 5 – ICF3: Флаг захвата состояния таймера-счетчика 3

Флаг устанавливается, если на входе ICP3 определяется условие захвата. Если регистр захвата ICR3 выбран с помощью бит WGM3:0 в качестве источника верхнего предела счета, то флаг ICF3 устанавливается по достижении верхнего предела счета.

ICF3 автоматически сбрасывается при переходе на вектор прерывания по захвату состояния таймера-счетчика. Альтернативно флаг ICF3 можно сбросить путем записи в него лог. 1.

Разряд 4 – OCF3A: Флаг результата сравнения канала А таймера-счетчика 3

Данный флаг устанавливается следующим тактом после совпадения значения TCNT3 с регистром А порога сравнения (OCR3A).

Обратите внимание, что строб принудительной установки результата сравнения (FOC3A) не устанавливает флаг OCF3A. Флаг OCF3A автоматически сбрасывается при переходе на соответствующий вектор прерывания. Альтернативно, флаг OCF3A сбрасывается путем записи в него лог. 1.

Разряд 3 – OCF3B: Флаг результата сравнения канала B таймера-счетчика 3

Действует аналогично предыдущему, но в отношении канала В таймера-счетчика 3.

Разряд 2 – TOV3: Флаг переполнения таймера-счетчика 3

Установка данного флага зависит от значений бит WGM3:0. В нормальном режиме и режиме СТС флаг TOV3 устанавливается при переполнении таймера-счетчика. См. табл. 61 для изучения поведения флага TOV3 при задании других значений WGM3:0. Флаг TOV3 автоматически сбрасывается при переходе на вектор прерывания по переполнению таймера-счетчика 3. Альтернативно флаг TOV3 сбрасывается путем записи в него лог. 1.

Разряд 1 – OCF3C: Флаг результата сравнения канала С таймера-счетчика 3

Данный флаг устанавливается следующим тактом после совпадения значения TCNT3 с регистром С порога сравнения (OCR3С).

Обратите внимание, что строб принудительной установки результата сравнения (FOC3С) не устанавливает флаг OCF3С. Флаг OCF3С автоматически сбрасывается при переходе на соответствующий вектор прерывания. Альтернативно, флаг OCF3С сбрасывается путем записи в него лог. 1.

Разряд 0 – OCF1C: Флаг результата сравнения канала С таймера-счетчика 1

Действует аналогично предыдущему, но в отношении TCNT1 и канала С таймера 1.
 

<< Предыдущая страница Оглавление Следующая страница >>







Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.