求大神解析一下 小白求教

2019-07-20 23:19发布


          while(1)
        {       
                delay_ms(10);       
                if(dir)led0pwmval++;
                else led0pwmval--;

                if(led0pwmval>300)dir=0;
                if(led0pwmval==0)dir=1;                                                                                 
                TIM_SetCompare2(TIM3,led0pwmval);                        //修改占空比         
        }         

PWM输出,为什么前面要加延时,不加好像达不到预期由暗到亮的效果

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
peng1554
1楼-- · 2019-07-21 03:29
不加的话 变化会非常的快,快到你感觉LED灯没什么变化,你可以试着加大延时,会发现灯亮度变化会越来越慢~~
pi1225
2楼-- · 2019-07-21 09:25
楼上正解!不过你也可尝试将定时器分频弄大一点,再把重装载值设置大一点,不加延时可能也能看到效果!
HXYDJ
3楼-- · 2019-07-21 13:25
由于人眼观察时会有视觉暂留现象,如果LED亮度变化太快的话,人眼观察时就感觉不到。就像数码管动态扫描原理一样。若要人眼能明显得感觉到变化,就需要增加延时。让LED的亮度变化更慢一点,这样人眼就能感觉到亮度变化了。

一周热门 更多>