飞思卡尔XS128系列(二) PWM模块怎样实时改变pwm波的周期和占空比

2024年11月13日 15:18
有1个网友回答
网友(1):

void PWM_Init(void)
{
PWME = 0x00; //禁止PWM输出
PWMCTL = 0x30;//通道0,1级联、2,3级联,形成16位pwm通道
//CLOCK A 通道0、1、4、5;CLOCK B 通道2、3、6、7
PWMPRCLK = 0x00; //clock A =busclk=24Mhz
PWMSCLA = 0x01; //clockSA的频率为12MHz PWMSCLA =0x00则clka被分频512
PWMSCLB = 0x06; //clockSB的频率为2MHz
PWMCLK = 0x0ff; //时钟来源选择 clockSA clockSB
PWMPOL = 0x0ff;//在周期开始时,PWM所有通道输出高电平
PWMCAE = 0x00;//所有PWM通道输出左对齐

PWMPER01 = 375;//频率为32kHz
PWMDTY01 = 0;
PWME = 0x02; //PWM1使能
}
PWMDTY01控制占空比,PWMPER01控制周期