logo
HCS12 с применением языка С - royallib

4.24.5. Примеры программирования модуля pwm

Изучая модуль PWM, читатель должен был заметить, что модуль требует инициализации достаточно большого числа регистров для определения параметров работы каналов ШИМ. Однако после активизации каналов их программное обслуживание состоит лишь в смене значений коэффициента заполнения и реже, периода следования выходной импульсной последовательности.

Рассмотрим последовательность действий, которую необходимо проделать для инициализации модуля PWM:

• Для конкретного приложения следует определить разрешающую способность генерируемого ШИМ-сигнала, т.е. число дискретных отсчетов частоты таткирования канала в периоде и длительности импульса выходного сигнала канала. На основании полученных данных следует определить, в каком режиме, 8-разрядном или 16-разрядном, Вы будете использовать каналы модуля PWM;

• Для конкретного приложения следует определить требуемую частоту генерируемого ШИМ-сигнала. На основе полученных данных определить структуру подсистемы тактирования каналов модуля PWM;

• Установить биты CON23 и CON01 в регистре PWCLK для выбора 8-разрядного или 16-разрядного режима работы;

• Определить, будете ли Вы использовать режим центрированной или режим фронтовой ШИМ. В соответствие с выбранным режимом установить бит CENTR в регистре PWCTL;

• Определить активный уровень ШИМ-сигнала, в соответствии с выбором установить биты PPOL0…PPOL3 в регистре PWPOL;

• Назначить источники тактирования для каналов, для чего установить биты PCLK0…PCLK3 в регистре PWPOL;

• Установить коэффициенты деления для импульсных последовательностей CLOСK_A и CLOСK_B, используя для этого биты PCKA2…PCKA0 и PCKB2…PCKB0 регистра PWCLK;

• Установить для используемых каналов значения регистров периода и регистров коэффициента заполнения;

• Разрешить работу выбранных каналов модуля PWM, используя для этого биты PWEN0…PWEN3 регистра EPWM.

В конце данной главы в разделе самостоятельных заданий (задание 12) мы предложим Вам определить параметры инициализации модуля ШИМ самостоятельно. А пока приведем два примера.