PWM这段代码有没有大佬解释一下

2019-07-20 00:50发布

while(1)
{
delay_ms(10);
if(dir)led0pwmval++; //dir==1 led0pwmval 递增
else led0pwmval--; //dir==0 led0pwmval 递减
if(led0pwmval>300)dir=0; //led0pwmval 到达 300 后,方向为递减
if(led0pwmval==0)dir=1; //led0pwmval 递减到 0 后,方向改为递增
TIM_SetTIM3Compare4(led0pwmval);//修改比较值,修改占空比
}
}
为什么到达300后要把这个比较值改成300,给的arr值是499,那么等他下一次把占空比改成0以后是不是一直会保持在高电平,那为什么要去修改这个占空比。还有就是这个是通过模拟的阈值来调节数字的占空比的话为什么还有灯的亮暗,输出的不应该是一个能够调节占空比的数字量吗

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
下雨的声音
1楼-- · 2019-07-20 23:12
一样的,当输出的高电平(高电平灯亮时)占到一定的比例,它的变化就很小了。
bahjdbge
2楼-- · 2019-07-21 02:50
 精彩回答 2  元偷偷看……

一周热门 更多>