本帖最后由 ddllxxrr 于 2023-12-12 22:20 编辑
增强性 PWM 模块支持 6 路 PWM 发生器,可以配置成相互独立的 6 路 PWM 输出(EPWM0-EPWM5),也可以配置成 3 对 分别带有编程死区发生器的互补 PWM(EPWM0-EPWM1,EPWM2-EPWM3,EPWM4-EPWM5)。 每一对 PWM 共用 8 位预分频器,有 6 组时钟分频器,提供 5 种分频系数(1、1/2、1/4、1/8、1/16)。每一路 PWM 输出有 独立的 16 位计数器进行控制,另外 16 位的比较器用以调节占空比。6 路 PWM 发生器提供 24 个中断标志,相关 PWM 通道的 周期或占空比与计数器相符,将产生中断标志,每一路 PWM 有单独的使能位。 每路 PWM 可配置成单次模式(产生一个 PWM 信号周期)或者循环模式(连续输出 PWM 波形)。
经查,LED2在第21脚上,而21可以输出PWM波的,
再加一个延时函数,就可以实现呼吸灯了,程序如下:
EPWM_Config();
while(1)
{
if(flag == 0)
{
count++;
if(count > 4800)
flag = 1;
}
else
{
count--;
if(count == 0)
{
flag = 0;
}
}
EPWM_ConfigChannelSymDuty(EPWM4,count);
delay_ms(1);
}
延时函数是自己编的:
void delay_ms(uint16_t ss)
{
uint16_t i,j;
for(i=0;i<ss;i++)
for(j=0;j<2000;j++)
;
}
运得效果:
https://training.eeworld.com.cn/course/68292/learn?preview=1&md5__2280=eqfxBD0D9mitD%3DDODlhIq0%3DAY7I9bEqTrD&alichlgref=http%3A%2F%2Ftraining.eeworld.com.cn%2Fcourse%2F68292%2Flearn%3Fpreview%3D1#lesson/38593