MICROCHIP 单片机内带PWM功能说明
撇开书上的公式不谈,简单说,当PWM功能开启之后TMR2开始运行计时,同时PWM脚输出高电平,当TMR2>=CCPRxL时,PWM脚输出低电平,当TMR2>=PR2时重新开始另一个周期,TMR2=0,同时TMR2IF置高,所以相对于软件来说,PR2的值就是PWM的周期,CCPRxL的值就是是PWM的占空比。其中有两个特殊情况:当CCPRxL=0时,PWM脚始终输出低电平。当CCPRxL>;PR2时PWM脚始终输出高电平。
另一个情况是在PWM运行期间可随时向TMR2、PR2、CCPRxL中写入新值,但除向TMR2写入之外,其余两个值都必须在当前PWM周期完成之后再执行。
所以我们有多种方法可以操作PWM,在PWM运行时向CCPRxL写入0,那么下个周期开始PWM就等于被关闭了;还可以向TMR2中写入一个大于CCPRxL的值以提前结束本PWM周期的高电平等。
至于PWM脉冲计数,很方便,只要检测TMR2IF,对其高电平进行计数就可知脉
页:
[1]