Микроконтроллеры для систем автоматики - часть 20

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  18  19  20  21   ..

 

 

Микроконтроллеры для систем автоматики - часть 20

 

 

 

79 

º 

Бит 6 - ICES1 (Input Capture1 Edge Select) - выбор фронта срабатывания на 
входе  захвата  1.  При  сброшенном  в  состояние 0 бите ICES1  содержимое 
таймера/счетчика  1  пересылается  в  регистр  захвата  входа ICR1  по 
падающему  фронту  на  входе  захвата IC1.  При  установленном  в  1  бите 
ICES1  содержимое  таймера/счетчика1  пересылается  в  регистр  захвата 
входа ICR1 по нарастающему фронту на входе захвата IC1.  

В

Ы Х О Д Ы   С Р А В Н Е Н И Я

 

Таймер/счетчик  1  поддерживает  два  выхода  сравнения,  используя  регистры 

сравнения выходов A и B - OCR1A и OCR1B в качестве источников данных, сравниваемых с 
содержимым  таймера/счетчика  1.  Функции  сравнения  включают  очистку  счетчика  по 
совпадению  сравнения A и  воздействие  на  выходы  сравнения  выхода  при  двойном 
совпадении. 

Регистры выходов сравнения OCR1AH (Timer/Counter1 Output Compare Register A 

High), OCR1AL (Timer/Counter1 Output Compare Register A Low), OCR1BH (Timer/Counter1 
Output Compare Register B High)
 и OCR1BL (Timer/Counter1 Output Compare Register B Low) 
образуют два 16-разрядных регистра OCR1A и OCR1B. 

Регистры OCR1A и OCR1B хранят данные, постоянно сравниваемые с состоянием 

таймера/счетчика  1.  Действие,  запускаемое  совпадением  при  сравнении  определяется 
содержимым  регистра  управления  и  состояния  таймера/счетчика1.  Совпадение  может 
произойти, только если таймер/счетчик 1 досчитает до значения содержимого OCR1A или 
OCR1B.  Если  в TCNT1  и OCR1A  или OCR1B  программно  будут  записаны  одинаковые 
значения, то совпадение при сравнении сгенерировано не будет. 

Совпадение  при  сравнении  устанавливает  флаг  прерывания  по  совпадению  в 

тактовом цикле процессорного ядра, следующем за самим совпадением. 

Поскольку регистры сравнения выхода OCR1A и OCR1B являются 16-битными, то 

для  обеспечения  одновременного  занесения  старшего  и  младшего  байтов  данных  в 
регистры OCR1A/B используется регистр временного хранения TEMP. Когда процессорное 
ядро записывает старший байт, то данные временно сохраняются в регистре TEMP. Когда 
же  записывается  младший  байт  в OCR1AL  или OCR1BL,  то  одновременно  содержимое 
регистра TEMP переписывается  в OCR1AH  или OCR1BH.  Следовательно,  при  16-
разрядных операциях старшие байты регистров OCR1A/B должны записываться первыми. 

Кроме  того,  регистр TEMP используется  при  обращении  к TCNT1  и ICR1.  Если 

основная  программа  и  подпрограммы  обработки  прерываний,  используют  обращение  к 
регистрам посредством TEMP, то на это время прерывания должны быть запрещены. Для 
управления  выходами  захвата  используются  отдельные  биты  регистров TCCR1A  и 
TCCR1B. 

Регистр управления TCCR1A (Timer/Counter 1 Control Register A ): 

º 

Биты 7,6 - COM1A1, COM1A0 (Compare Output Mode1A, bits 1 and 0) – биты 
задания  режима  выхода.  Определяют  характер  выходного  сигнала  при 
сравнении  таймера/счетчика  1  с  регистром OCR1A.  Выходной  сигнал 
поступает  на  выход OC1A (Output Compare A).  Конфигурирование 
управления представлено в таблице 12.3. 

 

80 

Таблица 12.3.  

Выбор режима сравнения 

COM1X1 COM1X0 

Описание 

0 0 

Таймер/счетчик1 отключен от вывода OC1X 

Переключение выходной линии OC1X 

1 0 

Очистка выходной линии OC1X (на линии низкий уровень) 

Установка выходной линии OC1X (на линии высокий уровень) 

Примечание: X = A или B. 

º 

Биты 5,4 - COM1B1, COM1B0 (Compare Output Mode1B, bits 1 and 0) – биты 
задания  режима  выхода  В.  Биты  определяют  характер  сигнала  на  выходе 
при  сравнении  таймера/счетчика  1  с  регистром OCR1B.  Сигнал  выхода 
поступает  на  вывод OC1B (Output Compare B).  Конфигурирование 
управления  представлено  в  таблице 5.13.  При  изменении  битов 
COM1X1/COM1X0  прерывания  по  сравнению  выхода  1  должны  быть 
запрещены  очисткой  битов  разрешения  прерывания  в  регистре TIMSK. В 
противном случае при изменении битов может произойти прерывание  

º 

Бит 3 - FOC1A (Force Output Compare1A) – воздействие  на  выход OC1A. 
Запись  логической  единицы  в  этот  бит  приводит  к  изменению  на  выводе 
OC1A  относительно  значений  установленных  битами COM1A1  и COM1A0. 
Если COM1A1  и COM1A0  биты  занесены  в  том  же  самом  цикле,  что  и 
FOC1A,  то  новые  значения  не  будут  вступать  в  силу.  Бит  может 
использоваться,  чтобы  изменить  состояние  выхода OCR1A.  При  этом 
никакое  прерывание  не  генерируется  и  таймер  не  очищается. FOC1A  бит 
всегда читается как нуль.  

º 

Бит 2 - FOC1B  (Force Output Compare 1B)  воздействие  на  выход OC1B. 
Запись  логической  единицы  в  этот  бит  приводит  к  изменению  на  выводе 
OC1B  относительно  значений  установленных  битами COM1B1  и COM1B0. 
Если COM1B1  и COM1B0  биты  занесены  в  том  же  самом  цикле,  что  и 
FOC1B,  то  новые  значения  не  будут  вступать  в  силу.  Бит  может 
использоваться,  чтобы  изменить  состояние  выхода OCR1B.  При  этом 
никакое  прерывание  не  генерируется  и  таймер  не  очищается. FOC1B  бит 
всегда читается как нуль.  

Регистр  TCCR1B - (Timer/Counter1 Control Register B): 

º 

Бит 3 - CTC1  (Clear Timer/Counter1 on Compare Match) - очистка 
таймера/счетчика 1 по совпадению. При установленном в состояние 1 бите 
CTC1 таймер/счетчик 1 при совпадении сбрасывается в состояние $0. Если 
бит CTC1  очищен,  таймер/счетчик1  продолжает  отсчет  и  не  реагирует  на 
совпадение  при  сравнении.  Поскольку  совпадение  при  сравнении 
детектируется в течение тактового цикла процессорного ядра следующего за 
совпадением,  то  поведение  функции  будет  различно  при  различных 
коэффициентах  предделителя.  При  коэффициенте  предварительного 
деления  1  и  установленном  в  регистре  сравнения A состоянии C таймер 
будет считать в соответствии с установкой бита CTC1: . | C-1 | C | C+1 | 0 | 1 | 
...  При  установленном  коэффициенте  предварительного  деления 8 таймер 

 

81 

будет считать следующим образом: ... | C-1, C-1, C-1, C-1, C-1, C-1, C-1, C-1 | 
C, C, C, C, C,C, C, C | C+1, 0, 0, 0, 0, 0, 0, 0, 0 | …. 

Р

Е Ж И М   Ш И Р О Т Н О

-

И М П У Л Ь С Н О Й   М О Д У Л Я Ц И И

 

Таймер/счетчик  1  может  быть  использован  в  качестве 8, 9 или  10-разрядного 

широтно-импульсного модулятора (PWM - Pulse Width Modulator).  Работой PWM управляют 
отдельные биты регистра управления TCCR1A (Timer/Counter1 Control Register A ): 

º 

Биты 1,0 - PWM11, PWM10 (Pulse Width Modulator Select Bits) - биты выбора 
режима  широтно-импульсной  модуляции.  Данные  биты  определяют 
установку режима ШИМ, как это показано в таблице 12.4.  

Таблица 12.4.  

Выбор ШИМ режима 

PWM11 PWM10 

Описание 

0 0 

Работа таймера/счетчика1 в ШИМ режиме запрещена 

Работа таймера/счетчика1 в 8-разрядном ШИМ режиме 

1 0 

Работа таймера/счетчика1 в 9-разрядном ШИМ режиме 

Работа таймера/счетчика1 в 10-разрядном ШИМ режиме 

При  установленном  режиме  широтно-импульсной  модуляции  таймер/счетчик  1  и 

регистры  сравнения  выхода A и B (OCR1A  и OCR1B),  образуют  сдвоенный 8, 9 или  10-
разрядный  автономный  генератор  широтно-импульсной  последовательности  с  выходами 
на  выводы OC1A  и OC1B.  Таймер/счетчик1  в  этом  случае  работает  как  реверсивный 
счетчик, считающий от $0000 до значения TOP (таблица 12.5), при котором направление 
счета меняется и отсчет ведется до нуля, после чего цикл повторяется.  

Таблица 12.5.  

TOP значения таймера и частота ШИМ 

Разрешение ШИМ TOP значения таймера  Частота ШИМ 

8-разрядное $00FF 

(255) f 

TC1

 /510 

9-разрядное $01FF (511) f 

TC1

 /1022 

10-разрядное $03FF 

(1023) f 

TC1

 /2046 

Когда состояние счетчика совпадет с содержимым 10 младших битов OCR1A или 

OCR1B,  выводы OC1A/OC1B  устанавливаются  или  очищаются,  в  соответствии  с 
установками  битов COM1A1/ COM1A0  или COM1B1/COM1B0  в  регистре  управления 
таймером/счетчиком 1 TCCR1A (табл. 12.6). 

 

82 

Таблица 12.6.  

Выбор функции сравнения в ШИМ режиме 

COM1X1 COM1X0 

Выходной сигнал на OCX1 

0 0 

Не подключен 

Не подключен 

1 0 

Очищается по совпадению при счете вверх. Устанавливается по 
совпадению при счете вниз (не инвертированный ШИМ) 

Очищается по совпадению при счете вниз. Устанавливается по 
совпадению при счете вверх (инвертированный ШИМ) 

Примечание: X = A или B. 
В PWM режиме  младшие  10  разрядов  регистра OCR1A/OCR1B,  при  записи, 

пересылаются  в  ячейки  временного  хранения.  Они  фиксируются  по  достижении 
таймером/счетчиком  1  значения TOP. Таким  способом  обеспечивается  защита  от 
появления ложных выбросов (glitches) при несинхронной записи OCR1A/OCR1B (рис. 12.5). 

 

Рис. 12.5. Эффект несинхронной фиксации OCR1 

При  чтении OCR1A  или OCR1B,  в  промежутке  времени  между  записью  и 

фиксацией,  будет  считано  содержимое  ячейки  временного  хранения.  Это  означает,  что 
считываться из OCR1A/B всегда будет значение записанное первым. 

Когда OCR1 содержит $0 или TOP, вывод OC1A/OC1B остается на низком уровне, 

соответственно  установкам COM1A1/COM1A0  или COM1B1/COM1B0.  Это  отображено  в 
таблице 12.7. 

Таблица 12.7.  

Состояния выходов в ШИМ режиме при OCR1X = $0 или TOP 

COM1X1 COM1X0 OCR1X  Состояние выводов OC1X 

1 0 

$0 

1 0 

TOP 

1 $0 

1 TOP 

Примечание: X = A или B. 
В ШИМ режиме флаг переполнения таймера 1 (TOV1) устанавливается при смене 

направления  счета  по  достижении  значения $0. Прерывание  по  переполнению 

 

 

 

 

 

 

 

содержание   ..  18  19  20  21   ..