搞个2812灯带玩一玩,可以任意颜色和亮度。 |
PWM是一种方波脉冲串,占空比可调,占空比是开和关持续时间的比值。 该代码分别控制开启和关闭持续时间 X1 和 X2。 循环时间/计数为 1000。 |
进来学习的,可惜代码不全。 |
占空比=X1/1000.总时间是1000个时间量,低电平时X1个时间量,高电平是1000-X1个时间量,改变X1就是改变占空比,实现亮与暗的时间比例变化,由于时间短,看到的是光的总亮度变化。 |
m182892 发表于 2019-5-11 08:26 问题是楼主位代码算X2的值算错了。 |
看到你这个代码 让我想到的是呼吸灯的代码,从灭到亮 逐渐变化的 |
PWM周期是1000,首先是灯亮,等待X1低电平时间到,转为灯灭,持续X2时间,高电平占空比为X2/1000 |
占空比=X1/1000.总时间是1000个时间量,低电平时X1个时间量,高电平是1000-X1个时间量,改变X1就是改变占空比,实现亮与暗的时间比例变化,由于时间短,看到的是光的总亮度变化。 |
你的截图代码不完整,没办法解释, 而且X2本来就有问题,117-120行已经表明X1永远都是等于0后才往下执行,那么X2=1000-X1;这个就是多余的,123行的X2永远都是从1000开始减, 这个程序如果不给出完整的代码只能认为是错误的 |
本帖最后由 ccl09 于 2019-5-11 13:38 编辑 while(x1!=0){},等待 x1*指令周期 的时间 ,x1<1000, while(x2!=0){},等待 x2*指令周期 的时间,占空比x2/1000. |