PIC12F683 定时输出PWM的问题 [复制链接]
10芯积分
此帖出自Microchip MCU论坛
最新回复
PWM设置相关的程序示例:(源于正常产品中程序的节选)
使用的MCU型号:PIC12F615
MCU使用频率:8MHz(时钟节拍为2MHz)
PWM功能:使用CCP1模块,在GPIO2管脚上输出频率为16KHz,脉宽可变的PWM信号(分辩率接近7位)
此时,PWM中CCP1的比较数量最大值是:2MHz/16KHz=125,(PWM_MAX=125)
那么,CCP1模块的数据是:
① CCP1CON = 0x0C; //普通PWM模式,CCP1输出高电平有效
[attach]339775[/attach]
高电平有效,指的是在PWM开始时,管脚输出H电平,当CCP1的数据达到设定值后,IO输出L电平。
②CCPR1L = (PWM_MAX);
产品中,先是将PWM设定为最高,再向下调节;这段指的是PWM的输出管脚目前恒为H电平。
③T2CON = 0x00;
T2的前后分频均为1,目前是关闭T2的,等管脚设置完成后再打开。
④PR2 = (PWM_MAX-1);
此处是重点:PR2的值一定要比设定的最大脉宽值少1,否则在最大脉宽时,PWM输出将不正常。
原因在于T2与PR2匹配后,到下个递增周期时才复位为0:
[attach]339776[/attach]
详情
回复
发表于 2018-1-12 09:28
| ||
|
||
| |
|
|
| |
|
|
此帖出自Microchip MCU论坛
| ||
|
||
| |
|
|
| |
|
|
此帖出自Microchip MCU论坛
赞赏 | ||
|
||
| |
|
|
EEWorld Datasheet 技术支持