Таймеры TMR1 и TMR2 микроконтроллеров PIC применяются в составе модуля сравнения/захвата/ШИМ – ССР (Compare-Capture-PWM). Таких модулей может быть два: ССР1 и ССР2, – управление которыми реализовано с помощью регистров CCPxCON (рис. 4.15),
–
–
DC1BX1
DC1BX0
CCP1M3
CCP1M2
CCP1M1
CCP1M0
Рис. 4.15. Регистр CCPxCON микроконтроллеров PIC
Назначение отдельных разрядов регистра CCPxCON:
ССР1М0 – ССР1МЗ – выбор режима захвата/сравнения (табл. 4.9) DC1ВХ0 – DC1ВХ1– два младших разряда 10-разрядной ШИМ.
Таблица 4.9. Назначение разрядов ССР1М1 -ССР1МЗ регистра CCPxCON
ССР1МЗ
ССР1М2
ССР1М1
ССР1М0
Значение
X
X
Модуль ССР отключен
Захват по каждому ниспадающему фронту
Захват по каждому нарастающему фронту
Захват по каждому 4-му нарастающему фронту
Захват по каждому 16-му нарастающему фронту
В случае совпадения на выходе – высокий уровень
В случае совпадения на выходе – низкий уровень
В случае совпадения – запрос на прерывание
Особый случай режима сравнения
X
X
Режим ШИМ
В режиме захвата (то есть, фиксации значения таймера в момент появления определенного условия) используются регистры CCPR1H, CCPR1L (в случае TMR1) или CCPR2H, CCPRL (в случае TMR2). В таком режиме таймер выполняет функции счетчика тактовых импульсов, и при наступлении условия захвата его содержимое переписывается в регистровую пару CCPRx.
В режиме сравнения модуль ССР формирует сигнал на выходе ССРх в том случае, когда содержимое счетного регистра становится равным значению, записанному в регистровой паре CCPRxL, CCPRxH. Этот режим обычно используется для выдачи сигналов на внешние устройства по истечении некоторого временного интервала.
В режиме ШИМ таймер работает как делитель частоты, формирующий период ШИМ-сигнала. Его значение постоянно сравнивается с содержимым регистра PR2, и при совпадении компаратор сбрасывает таймер в исходное состояние, после чего цикл повторяется. Параллельно организован контур сравнения, включающий в себя таймер, второй компаратор и регистр CCPRxH. Выходы обоих компараторов управляют RS-триггером, выход которого соединен с выводом ССРх.
Вначале триггер устанавливается в "1" по сигналу сброса таймера, а по сигналу компаратора контура сравнения – сбрасывается в "О". Таким образом, на выходе RS-триггера формируется сигнал с периодом, определяемым содержимым регистров PR2 и CCPRxH.