可能一些同学可能对PWM的极性控制不怎么理解(对,说的就是我自己。。。),那么就让我们在本次博文中,一起来探究下极性控制的原理及程序吧。如果有描述错误的情况,希望各位大佬指出。 首先我们来看看官方手册中对极性控制的描述,其中可以发现,对于PWM极性,是通过PNPn来进行控制的。
知道极性控制寄存器后,我们再来看看单片机内部的模块图,我们可以发现,PNPn寄存器,是对应通道二选一选择器的选择端,在默认情况下,PNPn为0,即正常输出,当PNPn寄存器置高时,PWM信号会被一个取反器控制。通俗一点来说,就是原先的占空比是控制高电平持续时间,现在通过这个取反器,使得占空比为低电平持续时间,之后变为高电平。
既然原理都明白了,接下来就让我们来看看官方例程中的相关代码吧(有一点小小修改),将disable更改为enable。
关闭使能后会造成无法无PWM输出的问题。
但在官方例程中,要实现极性控制需要先关闭相关PWM的使能,在配置完频率及占空比后,再将该通道PWM设定为为极性控制。PWM5_P03_OUTPUT_DISABLE;但实际测试得知,这样配置PWM,会造成最终没有PWM输出 接下来我们将程序下载到单片机中,通过逻辑分析仪,看看实际运行效果
使能P0.1和P0.3两个管脚,程序中PWM5为极性控制输出,PWM4为正常输出,占空比均设定为0.25ms,周期1ms。
|