Микроконтроллеры AVR

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

е, что осциллятор Т/С2 работает асинхронно по отношению к системному осциллятору.

 

76543210PWM2COM21COM20CTC2CS22CS21CS20Рис. 4.8. Регистр TCCR2 таймера/счетчика Т/С2

 

Установка в лог. 1 разряда PWM2 переводит Т/С2 в режим ШИМ. Назначение разрядов COM21 и СОМ20 идентично назначению разрядов COM lxl и СОМ 1x0 таймера/счетчика Т/С1 выбор режима сравнения на выходе.

Разряд СТС2 определяет, должен ли счетчик сбрасываться в нуль при совпадении его содержимого с регистром сравнения. Разряды 0 2 определяют частоту тактового сигнала, полученного с помощью предварительного делителя частоты такта системной синхронизации.

 

Таймеры/счетчики микроконтроллеров PIC

 

Описанное выше применение таймеров/счетчиков микроконтроллеров AVR справедливо также и для таймеров микроконтроллеров PIC. Здесь используются аналогичные принципы измерения ширины и частоты импульсов, а также широтно-импульсной модуляции, режимов сравнения и захвата.

В микроконтроллерах PIC могут использоваться три таймера: TMR0, TMR1 и TMR2.

 

TMR0

 

TMR0 (рис. 4.9) это 8-разрядный таймер/счетчик. Таким образом, счет для него ограничен диапазоном 0-255. Его тактирование реализуется от внешнего источника или на основании такта системной синхронизации.

Рис. 4.9. Схема таймера/счетчика TMR0

Для управления работой таймера TMR0 используются следующие разряды регистра OPTION_REG:

  1. разряд 5 T0CS определяет выбор источника синхроимпульсов (0 внутренний; 1 внешний на входе TOCKI);
  2. разряд 4 T0SE определяет выбор фронта, по которому происходит увеличение содержимого счетного регистра TMR0 (0 по нарастающему; 1 по ниспадающему фронту тактового сигнала);
  3. разряд 3 PSA использование предварительного делителя частоты (0 делитель используется для управления таймером TMR0; 1 для управления сторожевым таймером);
  4. разряды 0-2 PS0, PS1, PS2 выбор коэффициента деления частоты входного тактового сигнала (табл. 4.6).

 

Таблица 4.6. Назначение разрядов PSO - PS2 регистра OPTIONJREG

PS2PS1PSOКоэффициент деления частоты входного тактового сигнала000200140108011161003210164110128111256

Для управления прерываниями от таймера TMR0 используются следующие разряды регистра INTCON:

  1. разряд 2 TOIF флаг прерывания при переполнении TMR0;
  2. разряд 5 TOIE флаг разрешения прерывания при переполнении TMR0;
  3. разряд 7 GIE флаг общего разрешения прерываний.

 

TMR1

 

TMR1 (рис. 4.11) это 16-разрядный таймер/счетчик, который может использоваться для формирования запросов на прерывание, подобно TMR0, или же работать в режимах захвата, сравнения и ШИМ.

Тактирование таймера TMR1 осуществляется от сигнала системной синхронизации или от специального генератора, предназначенного для работы с относительно медленными программными приложениями. Как правило, используется кварцевый резонатор частотой 32,768 кГц.

Для управления таймером TMR1 используется регистр T1CON (рис. 4.12). Назначение отдельных разрядов регистра T1CON:

  1. TMRION подключение таймера (0 отключен, 1 включен);
  2. TMR1CS выбор источника тактирующих сигналов (0 такт системной синхронизации; 1 генератор 32,768 кГц);
  3. Tl SYNC включение/отключение синхронизация специального генератора с генератором импульсов системной синхронизации (0 включена; 1 отключена);
  4. T10SCEN разрешение/запрет тактирования таймера TMR1 от специального генератора (0 генератор отключен; 1 тактирование разрешено);

T1CKPS0, T1CKPS1 выбор коэффициента деления частоты (табл. 4.7).

Рис. 4.11. Схема таймера/счетчика TMR1

 

76543210T1CKPS1T1CKPS0T10SCENT1SYNCTMR1CSTMR1ONРис. 4.12. Регистр T1CON микроконтроллеров PIC

 

Таблица 4.7. Назначение разрядов T1CKPS0 - T1CKPS1 регистра T1CON

T1CKPS1T1CKPS0Коэффициент деления частоты тактового сигнала001012104118

Счетный регистр таймера TMR1 представляет собой регистровую пару TMR1H, TMR1L, а управление прерываниями осуществляется с помощью разрядов регистров PIR1 и РIЕ1:

 

Регистр PIR1:

 

  1. разряд 0 TMR1IF флаг переполнения TMR1;
  2. разряд 2 ССР 1 IF флаг прерывания при возникновении захвата по входу/

Регистр PIE1:

 

  1. разряд 0 TMR1IE флаг разрешения прерывания при переполнении TMR1;
  2. разряд 2 ССР НЕ флаг разрешения прерывания при возникновении захвата по" входу.

TMR2

Назначение таймера TMR2 (рис. 4.13) измерение временных интервалов для реализации ШИМ, обеспечения определенной скорости обмена по последовательному порту и т.п. В этом смысле он подобен таймеру TMR0.

Таймер TMR2 тактируется импульсами, следующими с частотой такта системной синхронизации, деленной на четыре. Каждый раз, когда содержимое счетного регистра TMR2 совпадает с содержимым регистра PR2, таймер автоматически сбрасывается в исходное (нулевое) состояние.

 

Рис. 4.13. Схема таймера/счетчика TMR2

 

При каждом совпадении TMR2 и PR2 генерируется запрос на прерывание, частоту возникновения которого можно также масштабировать с помощью выходного делителя частоты.

Для управления таймером TMR2 используется регистр T2CON (рис. 4.14).

76543210TOUTPS3TOUTPS2TOUTPS1TOUTPS0TMR2ONT2CKPS1T2CKPS0Рис. 4.14. Регистр T2CON микроконтроллеров PIC

 

Назначение отдельных разрядов регистра T2CON:

  1. T2CKPS0-T2CKPS1 управление предварительным делителем частоты (табл. 4.8);
  2. TMR20N подключение таймера (0 отключен, 1 включен);
  3. TOUTPS0-TOUTPS3 выбор коэффициента деления частоты запросов на прерывание при TMR2::=:PR2 (табл. 4.9).

 

Таблица 4.8. Назначение разрядов T2CKPS0 - T2CKPS1 регистра T2CON

T1CKPS1T1CKPS0Коэффициент деления частоты тактового сигнала0010141X16

Таблица 4.9. Н