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

 

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

 

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

 

 

 

 

 

 

 

 

 

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

 

 

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

 

 

 

83 

таймера/счетчика  1  работает  так  же  как  и  в  обычном  режиме  таймера/счетчика,  т.е.  оно 
выполняется  когда  флаг TOV1  (Timer Overflow Flag)  в  регистре TIFR установлен, 
установлен бит I в регистре SREG и разрешены прерывания по переполнению таймера 1.  

12.3. Часы реального времени 

Часы  реального  времени RTC (Real Time Clock)  являются  разновидностью 

таймера/счетчика.  Задачей RTC в  схеме  микроконтроллера  обычно  считается 
формирование интервалов времени равных или кратных одной секунде.  

8-разрядный  таймер/счетчик 2 (Timer/Counter 2)  микроконтроллера  ATmega163 

может работать от генератора тактовых импульсов процессорного ядра CK. Вместе с тем, 
программно  его  можно  подключить  и  к  отдельному  тактовому  генератору.  Для  этого  к 
определенным  выводам  микроконтроллера (TOSC1  и TOSC2) подключается  кристалл 
резонатора. Генератор оптимизирован на частоту кристалла 32768 Гц. При использовании 
делителя  частоты  с  коэффициентом  деления 

32768

2

15

=

  такой  генератор  позволяет 

сформировать секундные интервалы времени. 8-битный таймер/счетчик 2, снабженный 7-
битным  предделителем,  и  реализует  в  схеме  микроконтроллера  режим  часов  реального 
времени.  

При  внешнем  тактировании  таймер/счетчик  работает  в  асинхронном  режиме, 

независимо от тактовых импульсов СК. 

Таймер/счетчик 2 снабжен  выходом  сравнения.  В  процессе  работы  содержимое 

регистра  сравнения  сравнивается  с  содержимым  счетчика.  В  момент  равенства 
устанавливается флаг запроса на прерывание OCF2 и модифицируется состояние выхода 
OC2 (рис. 12.4). Возможна его работа также и в режиме широтно-импульсной модуляции. 

Запрос на прерывание TOV2 вырабатывается при переполнении таймера/счетчика 

2. 

 

Рис. 12.4. Таймер/счетчик 2 

В работе таймера/счетчика 2 задействованы следующие регистры: 

º 

регистр управления TCCR2 (Timer/Counter Control Register 2); 

º 

регистр флагов прерывания TIFR (Timer/Counter Interrupt Flags Register); 

º 

регистр маски прерывания TIMSK (Timer/Counter Interrupt Mask Register), 

º 

регистр состояния микроконтроллера SREG (Status Register). 

º 

регистр счетчика TCNT2 (Timer/Counter 2

 

84 

º 

регистр выхода сравнения OCR2 (Timer/Counter2 Output Compare Register) 

º 

асинхронный регистр состояния ASSR (Asynchronous Status Register)  

 

  

1 0 

TCCR2 $25 

($45)  FOC2  PWM2  COM21 COM20  CTC2  CS22  CS21 CS20 

TCNT2 $24 

($44)  MSB 

 

 

 

 

 

 

LSB 

OCR2 $23 

($43)  MSB 

 

 

 

 

 

 

LSB 

ASSR $22 

($22) 

 

 

 

 AS2 

TCN2UB 

OCR2UB 

TCR2UB 

TIMSK $39 

($59)  OCIE2  TOIE2 

TICIE1  OCIE1A-  OCIE1B:  TOIE1 

TOIE0 

TIFR $38 

($58)  OCF2  TOV2 

ICF1 

OCF1A  OCF1B  TOV1 

TOV0 

SREG $3F ($5F) 

 

 

 

 

 

 

 

Рис. 12.6. Регистры таймера/счетчика 2 

В  регистре  маски  прерываний TIMSK (Timer/Counter Interrupt Mask Register

хранятся биты разрешения прерываний: 

•  бит 7 - OCIE2 (Timer/Counter2 Output Compare Match Interrupt Enable) – бит 

разрешения прерывания выхода сравнения. 

º 

бит 6 - TOIE2 (Timer/Counter2 Overflow Interrupt Enable) – бит  разрешения 
прерывания при переполнении таймера/счетчика 2. 

В регистре флагов прерываний TIFR (Timer/Counter Interrupt Flags Register) хранятся 

флаги запросов на прерывания: 

º 

бит 7 - OCF2 (Output Compare Flag 2) – флаг прерывания выхода сравнения. 

º 

бит 6 - TOV2 (Timer/Counter2 Overflow Flag) – флаг  прерывания  по 
переполнению таймера/счетчика 2. 

8-битный регистр переменной TCNT2 (Timer/Counter 2) содержит данные счетчика, 

доступен  для  чтения  и  записи.  Если  данные  записаны  в  регистр  и  выбран  источник 
тактового сигнала, то счет продолжается с записанного значения. 

Работу  счетчика  в  асинхронном  режиме  обеспечивает  асинхронный  регистр 

состояния ASSR (Asynchronous Status Register)

º 

Бит 3 - AS2 (Asynchronous Timer/Counter 2) – асинхронный  режим 
таймера/счетчика 2. Когда  бит AS2 сброшен  таймер/счетчик  тактируется 
внутренним  генератором  СК.  Когда  бит AS2 установлен,  таймер/счетчик 2 
тактируется с контакта TOSC1.  

º 

Бит 2 - TCN2UB (Timer/Counter 2 Update Busy) – бит  модификации 
таймера/счетчика 2. Когда таймер/счетчик 2 работает асинхронно и регистр 
TCNT2  записывается,  этот  бит  устанавливается.  Когда  регистр TCNT2 
модифицируется  из  регистра  временного  хранения,  этот  бит  аппаратно 
сбрасывается.  Логический 0 в  этом  бите  указывает,  что  регистр TCNT2 
можно модифицировать. 

º 

Бит  1 - OCR2UB (Output Compare Register 2 Update Busy) –  бит 
модернизации регистра выхода сравнения. Когда таймер/счетчик 2 работает 
асинхронно и регистр OCR2 записывается, этот бит устанавливается. Когда 
регистр OCR2 модифицируется  из  регистра  временного  хранения,  бит 
очищается.  Логический 0 в  этом  бите  указывает,  что  регистр OCR2 готов к 
модификации.  

 

85 

º 

Бит 0 - TCR2UB (Timer/Counter Control Register2 Update Busy) – бит 
модернизации регистра контроля таймера/счетчика. Когда таймер/счетчик 2 
работает  асинхронно  и  регистр TCCR2 записывается,  этот  бит 
устанавливается.  Когда  регистр TCCR2 модифицируется  из  регистра 
временного хранения, бит очищается. Логический 0 в этом бите указывает, 
что регистр TCCR2 готов к модификации.  

Если запись выполняется в любой из трех регистров таймера/счетчика 2, в то время 

как его бит модификации установлен, модифицированное значение может быть разрушено. 

Механизмы  для  чтения  регистров TCNT2 и OCR2. При  чтении TCNT2 читается 

фактическое  значение  таймера.  При  чтении OCR2 - читается  значение  во  временном 
регистре хранения. 

При  переключении  между  асинхронным  и  синхронным  режимами  работы 

таймера/счетчика 2 содержимое регистров TCNT2, OCR2 и TCCR2 может быть разрушено. 
Безопасная процедура для переключения генератора тактовых импульсов заключается в 
следующем: 

º 

Отключить прерывания таймера/счетчика 2, очищая биты OCIE2 и TOIE2. 

º 

Выбрать генератор тактовых импульсов, воздействуя на бит AS2. 

º 

Записать новые значения в регистры TCNT2, OCR2, и TCCR2. 

º 

При  переключении  к  асинхронной  операции  необходимо  дождаться  сброса 
TCN2UB, OCR2UB или TCR2UB. 

º 

Разрешить прерывания, если это необходимо. 

Внешний генератор оптимизирован для использования с резонатором на частоту 

32.768 кГц. Подключение резонатора к внешнему контакту TOSC1 также может привести к 
неправильной  работе  таймера/счетчика 2. Частота  синхронизации  процессорного  ядра 
должна быть больше частоты внешнего генератора не менее, чем в 4 раза. 

При записи в любой из регистров TCNT2, OCR2, или TCCR2 данные передаются в 

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

Регистр  выхода  сравнения OCR2  (Timer/Counter  2 Output Compare Register) 

доступен для чтения и записи, хранит константу для сравнения в счетчике. Регистр TCCR2 
(Timer/Counter2 Control Register) содержит  отдельные  биты  для  управления  выходом 
сравнения: 

º • 

Бит 7 - FOC2 (Force Output Compare) – воздействие на выход 2. Запись 1 в 

этот  бит  приводит  к  изменению  состояния  выхода  сравнения OC2 
относительно  значения,  заданного  битами COM21  и COM20. Если  биты 
COM21  и COM20 записываются  в  одном  цикле  с  битом FOC2, то  новые 
установки  не  будут  вступать  в  силу  до  следующего  сравнения.  Бит  может 
использоваться,  чтобы  изменить  состояние  выхода OC2. При этом никакое 
прерывание  не  генерируется  и  таймер  не  очищается. FOC2 бит  всегда 
читается как нуль.  

º 

Бит 6 - PWM2 (Pulse Width Modulator Enable) – включение  широтно-
импульсного  модулятора.  Когда  этот  бит  установлен  включается  режим 
PWM. 

º 

Бит 5,4 - COM21, COM20 (Compare Output Mode, bits 1 and 0) – биты режима 
выхода сравнения. Биты задают режим выхода сравнения в соответствии с 
таблицей 12.7. 

 

86 

Таблица 12.7.  

Режимы выхода сравнения ОС2 

COM21 COM20 

Описание 

0 0 

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

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

1 0 

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

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

º 

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

º 

Биты 2,1,0 - CS22, CS21, CS20 (Clock Select Bits 2,1, and 0) – биты выбора 
тактового  сигнала.  Тактовый  сигнал  таймера/счетчика  выбирается  по 
таблице 5.19. 

Таблица 12.8.  

Выбор тактового сигнала таймера/счетчика 2 

CS22 CS21 CS20 

Описание 

0 0 0 

Timer/Counter2 

остановлен 

0 0 1 PCK2 

PCK2 / 8 

PCK2 / 32 

PCK2 / 64 

1 0 1 PCK2 

128 

PCK2 / 256 

1 PCK2 

1024 

В режиме  PWM таймер/счетчик 2 может работать до переполнения при значении 

$FF или в реверсивном режиме (up/down). 

Два  режима PWM выбираются  с  помощью  бита CTC2 в  регистре TCCR2.Если 

режим PWM установлен, а бит CTC2 очищен, то таймер/счетчик 2 работает в реверсивном 
режиме,  считая  от $0 до $FF и  обратно.  Если  бит CTC2 установлен,  то  таймер  счетчик 
считает с $0 до $FF, а затем сбрасывается.  

Состояние  выхода  определяется  битами COM21/COM20.  В  соответствии  с 

таблицей 12.9. 

 

 

 

 

 

 

 

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