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

Инициализация модуля pwm, пример 1

Определим параметры настройки модуля PWM для генерации ШИМ-сигнала с частотой 976 Гц и коэффициентом заполнения 66,7%.

Частоту тактирования канала ШИМ выберем равной 8МГц/32 = 250 кГц. Этой частотой будем тактировать 8-разрядный счетчик канала. Для формирования частоты 976 Гц потребуется 256 отсчетов частоты 250 кГц, что соответствует максимально возможному коэффициенту счета 8-разрядного счетчика периода канала.

Для формирования сигнала с коэффициентом заполнения 66,7% следует установить код периода, равный 256 отсчетам, а код коэффициента заполнения — 171 отсчету. Для формирования ШИМ-сигнала будем использовать канал 0 модуля PWM.

Программный фрагмент init_pwm.c производит начальную установку регистров специальных функций модуля PWM для генерации на выходе PP0 ШИМ-сигнала с частотой 976 Гц и коэффициентом заполнения 66,7%:

/*--------------------------------------------------------*/

/* Функция init_pwm задает начальные установки модуля PWM */

/*--------------------------------------------------------*/

void ini_pwm(void) {

 PWTST = 0x00; /*выбрать нормальный режим работы модуля PWM*/

 PWCTL = 0х00; /*выбрать режим фронтовой ШИМ*/

 PWCLK = 0x28 /*канал 0 в 8разрядном режиме, коэфф. деления*/

              /* частоты E_CLOСK равен 32*/

 PWPOL = 0х01; /*установить высокий активный уровень сигнала*/

 DDRP = 0хFF; /*настроить порт P на вывод*/

 PWEN = 0x01; /*разрешить работу канала 0 модуля PWM */

 PWPER0 = 255; /*установить код периода*/

 PWDTY0 = 171 /*установить код коэффициента заполнения*/

}

/*--------------------------------------------------------*/