(相关资料图)
说到底,led_pwm库还是使用定时器,但是库已经将定时器和PWM输出通道封装成了库函数。大致分为两个阶段,定时器配置,通道配置,然后就可以产生那个PWM波形了。
计算占空比的时候,是根据分辨率计算,若要实现50%的占空比,就要设置duty为2**分辨率的一半,例如设置分辨率为8,则duty为256/2就是一半了。注意分辨率和频率的关系,若debug报错,适当降低频率或分辨率。
按理来讲,以上就可以实现PWM波了。
我还发现了个有意思的函数,能够实现渐变效果,但是有一个缺点就是这是阻塞式的,就是要等渐变完成之后才能执行下面的代码,不太适合应用到实时系统中。