Микроконтроллеры 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:
- разряд 5 T0CS определяет выбор источника синхроимпульсов (0 внутренний; 1 внешний на входе TOCKI);
- разряд 4 T0SE определяет выбор фронта, по которому происходит увеличение содержимого счетного регистра TMR0 (0 по нарастающему; 1 по ниспадающему фронту тактового сигнала);
- разряд 3 PSA использование предварительного делителя частоты (0 делитель используется для управления таймером TMR0; 1 для управления сторожевым таймером);
- разряды 0-2 PS0, PS1, PS2 выбор коэффициента деления частоты входного тактового сигнала (табл. 4.6).
Таблица 4.6. Назначение разрядов PSO - PS2 регистра OPTIONJREG
PS2PS1PSOКоэффициент деления частоты входного тактового сигнала000200140108011161003210164110128111256
Для управления прерываниями от таймера TMR0 используются следующие разряды регистра INTCON:
- разряд 2 TOIF флаг прерывания при переполнении TMR0;
- разряд 5 TOIE флаг разрешения прерывания при переполнении TMR0;
- разряд 7 GIE флаг общего разрешения прерываний.
TMR1
TMR1 (рис. 4.11) это 16-разрядный таймер/счетчик, который может использоваться для формирования запросов на прерывание, подобно TMR0, или же работать в режимах захвата, сравнения и ШИМ.
Тактирование таймера TMR1 осуществляется от сигнала системной синхронизации или от специального генератора, предназначенного для работы с относительно медленными программными приложениями. Как правило, используется кварцевый резонатор частотой 32,768 кГц.
Для управления таймером TMR1 используется регистр T1CON (рис. 4.12). Назначение отдельных разрядов регистра T1CON:
- TMRION подключение таймера (0 отключен, 1 включен);
- TMR1CS выбор источника тактирующих сигналов (0 такт системной синхронизации; 1 генератор 32,768 кГц);
- Tl SYNC включение/отключение синхронизация специального генератора с генератором импульсов системной синхронизации (0 включена; 1 отключена);
- 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:
- разряд 0 TMR1IF флаг переполнения TMR1;
- разряд 2 ССР 1 IF флаг прерывания при возникновении захвата по входу/
Регистр PIE1:
- разряд 0 TMR1IE флаг разрешения прерывания при переполнении TMR1;
- разряд 2 ССР НЕ флаг разрешения прерывания при возникновении захвата по" входу.
TMR2
Назначение таймера TMR2 (рис. 4.13) измерение временных интервалов для реализации ШИМ, обеспечения определенной скорости обмена по последовательному порту и т.п. В этом смысле он подобен таймеру TMR0.
Таймер TMR2 тактируется импульсами, следующими с частотой такта системной синхронизации, деленной на четыре. Каждый раз, когда содержимое счетного регистра TMR2 совпадает с содержимым регистра PR2, таймер автоматически сбрасывается в исходное (нулевое) состояние.
Рис. 4.13. Схема таймера/счетчика TMR2
При каждом совпадении TMR2 и PR2 генерируется запрос на прерывание, частоту возникновения которого можно также масштабировать с помощью выходного делителя частоты.
Для управления таймером TMR2 используется регистр T2CON (рис. 4.14).
76543210TOUTPS3TOUTPS2TOUTPS1TOUTPS0TMR2ONT2CKPS1T2CKPS0Рис. 4.14. Регистр T2CON микроконтроллеров PIC
Назначение отдельных разрядов регистра T2CON:
- T2CKPS0-T2CKPS1 управление предварительным делителем частоты (табл. 4.8);
- TMR20N подключение таймера (0 отключен, 1 включен);
- TOUTPS0-TOUTPS3 выбор коэффициента деления частоты запросов на прерывание при TMR2::=:PR2 (табл. 4.9).
Таблица 4.8. Назначение разрядов T2CKPS0 - T2CKPS1 регистра T2CON
T1CKPS1T1CKPS0Коэффициент деления частоты тактового сигнала0010141X16
Таблица 4.9. Н