[PIC®/AVR®/dsPIC®产品] PIC16F170x的PWM没办法到100%

[复制链接]
1900|10
 楼主| lanmp 发表于 2015-5-24 19:17 | 显示全部楼层 |阅读模式
把PWM寄存器设置成0x3ff输出仍然不是100%,手册里面的Duty Cycle Ratio也说最大就是1023/1024。是不是就不可能实现真正100%的输出了?所有PIC16都是这样的么?
yklstudent 发表于 2015-5-24 22:33 | 显示全部楼层
肯定不是这样的
tdh03z 发表于 2015-5-24 22:51 | 显示全部楼层
顶楼上,这个肯定可以,自己找下问题吧
 楼主| lanmp 发表于 2015-5-26 11:30 | 显示全部楼层
谢谢楼上两位回帖,你们试过么?有没有代码可以给我参考一下。我用MPLab生成的代码测试就是这样的。
 楼主| lanmp 发表于 2015-5-26 11:42 | 显示全部楼层
下面是我的代码
  1. void PWM3_Initialize(void)
  2. {
  3.     // Set the PWM to the options selected in the MPLAB® Code Configurator.
  4.     // PWM3EN enabled; PWM3POL active_hi;
  5.     PWM3CON = 0x80;
  6.    
  7.     // PWM3DCH 255;
  8.     PWM3DCH = 0xFF;
  9.    
  10.     // PWM3DCL 192;
  11.     PWM3DCL = 0xC0;
  12.    
  13.    
  14.     // Select timer
  15.     CCPTMRSbits.P3TSEL = 0x0;
  16. }

还有Timer2的设置
  1. void TMR2_Initialize(void)
  2. {
  3.     // Set TMR2 to the options selected in the User Interface

  4.     // TMR2ON off; T2CKPS 1:64; T2OUTPS 1:1;
  5.     T2CON = 0x03;

  6.     // PR2 255;
  7.     PR2 = 0xFF;

  8.     // TMR2 0x0;
  9.     TMR2 = 0x00;

  10.     // Clearing IF flag.
  11.     PIR1bits.TMR2IF = 0;

  12.     // Start TMR2
  13.     TMR2_StartTimer();
  14. }
 楼主| lanmp 发表于 2015-5-26 11:56 | 显示全部楼层
按手册里面的公式的确到不了100%,最大只能到1023/1024。https://bbs.21ic.com/forum.php?mod=attachment&aid=NDUxMTIwfDg4MjM2ZDQyfDE3NTk2NzgwODF8MHw%3D

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yklstudent 发表于 2015-5-26 12:58 | 显示全部楼层
PR2为什么设置为0XFF?
你合理设置使用不就可以保证了
 楼主| lanmp 发表于 2015-5-26 17:22 | 显示全部楼层
yklstudent 发表于 2015-5-26 12:58
PR2为什么设置为0XFF?
你合理设置使用不就可以保证了

你说的对,不过我理解如果PR2不是0xff就不是10位分辨率了,不知道是不是这样。
yklstudent 发表于 2015-5-26 20:29 | 显示全部楼层

PR2

本帖最后由 yklstudent 于 2015-5-26 22:54 编辑

看手册吧,牺牲点分辨率,比如PR2为249,分辨率差不多也到10位,但一定可以确保占空比输出到100%
 楼主| lanmp 发表于 2015-5-26 22:00 | 显示全部楼层
yklstudent 发表于 2015-5-26 20:29
当然不是了,好好研究PR2跟占空比等关系吧

你说的不是是什么意思啊
lyjian 发表于 2015-5-31 09:58 | 显示全部楼层
直接IO输出高电平就是100%
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

623

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部