PWM控制LED亮度变化的原理(超详解) | 您所在的位置:网站首页 › PWM调速技术原理 › PWM控制LED亮度变化的原理(超详解) |
PWM控制LED亮度变化的原理
通过ARR寄存器来设定预装载值,以确定循环频率和周期,计数器寄存器CNT从0开始计数,设定一个CCR寄存器的值,来跟CNT的计数值进行比较,当CNT的值小于CCR寄存器,输出低电平,当CNT大于CCR的值,小于ARR(还在这一个周期之内),就输出高电平。 特别注意:这种比较结果是对于PWM2的向上计数而言的,对于PWM1而言是相反的,应该要特别注意!!!!!!!!! PWM输出模式有两个如下 配置相关的寄存器的位是不同的! 当然我们知道,LED得到低电平发光,高电平不发光! 占空比我们已经知道了,就是高电平的时间占整个周期的比值,占空比越高,LED就越暗,所以我们要控制占空比来控制LED亮暗变化! 来看看正点原子的一段代码 while(1) { delay_ms(10); if(dir)led0pwmval++; else led0pwmval--; if(led0pwmval>300)dir=0; if(led0pwmval==0)dir=1; TIM_SetCompare2(TIM3,led0pwmval); }怎么来控制呢?看到程序里面用设置led0pwmval的值来设定占空比,追根溯源它的那个函数我们看到,它是把led0pwmval(参数为如图Compeare2)的值给了CCR,所以我们看到当led0pwmval值不断从0-300增大时,CCR也不断增大,这也就意味着,低电平占的时间越来越多,所以亮度由暗一直到亮,当然这一个脉冲周期可是很短很短的,所以我们只能看到LED的这种亮度变化了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |