Реализация ШИМ на PIC-контроллерах. Пестунов Д.А - 7 стр.

UptoLike

7
TMR2 сбрасывается в ‘0’;
Устанавливается высокий уровень сигнала на выходе CCP1 (если
длительность импульса нулевая, то высокий уровень устанавливаться не
будет);
Модуль ШИМ начинает новый цикл, загружая значение из регистра
CCPR1L в CCPR1H.
Примечание! Выходной делитель TMR2 не влияет на частоту ШИМ. Он
может использоваться для отсчета времени, когда необходимо изменить
скважность ШИМ.
Скважность ШИМ определяется значениями регистра CCPR1L и двух
битов CCP1CON<5:4>, причем старшие 8 бит сохраняются в CCPR1L. Для
вычисления длительности сигнала высокого уровня применяется формула:
Длительность импульса ШИМ = (CCPR1L:CCP1CON<5:4>) * 4T
OSC
*
коэффициент предделителя TMR2.
Значение CCPR1L:CCP1CON<5:4> может быть изменено в любое время,
но значение в регистре CCPR1H не изменится пока не произойдет
соответствие TMR2 и PR2. Регистр CCPR1H и внутренняя 2-разрядная
защелка образуют буфер ШИМ, который необходим при записи нового
значения длительности импульса ШИМ, поэтому в этом режиме регистр
CCPR1H программно не доступен для записи.
Когда значение CCPR1 и внутренней 2-разрядной защелки совпадет по
значению TMR2 и внутреннему 2-разрядному счетчику, вывод RC2/CCP1
будет сброшен в0’.
Примечание! Если длительность импульса ШИМ больше периода
ШИМ, вывод CCP1 не будет иметь низкий уровень сигнала.
Рекомендуемая последовательность настройки модуля CCP в ШИМ
режиме:
1. Установить период ШИМ в регистре PR2;
2. Установить длительность импульса в регистрах CCPR1L и CCP1CON
<5:4>;
3. Настроить вывод CCP1 как выход, сбросив бит TRISC<2>;
4. Настроить предделитель и включить TMR2 в регистре T2CON;
5. Включить CCP1 в режиме ШИМ.