dspic30f4011占空比输出有问题

[复制链接]
2611|8
 楼主| zhao837747240 发表于 2013-7-17 22:10 | 显示全部楼层 |阅读模式
用dspic30f输出pwm 程序如下
    PTCON=0;        //PWM时基关闭
    TRISE = 0x0100;          // PWM引脚设为输出
    PTPER=166;             //PWM频率为15khz
        PTMR=0;
         PWMCON1 = 0x0346;        // PWM2L使能 PWM1禁止 PWM3互补
     PDC2=83;            
         PDC3=83;            // 占空比为0.5
     PTCON = 0x8000;                //开始pwm
程序很简单 感觉没什么问题 但在示波器上测得的占空比接近0.8了 把PDC的数改到大于PTER的值(我配置的是低电平有效)应该输出低电平 但还是有占空比的pwm波 真心不知道哪里出问题了 求高手指教
地瓜patch 发表于 2013-7-18 09:12 | 显示全部楼层
  PTPER=166;             //PWM频率为15khz
这个频率要与你设定的系统时钟有关系的。仔细看看两者的关系,计算一下
 楼主| zhao837747240 发表于 2013-7-18 09:23 | 显示全部楼层
地瓜patch 发表于 2013-7-18 09:12
PTPER=166;             //PWM频率为15khz
这个频率要与你设定的系统时钟有关系的。仔细看看两者的关系, ...

频率是无所谓的 关键是占空比输出不对  我现在写的是0.5的占空比 但是输出的明显偏大
地瓜patch 发表于 2013-7-18 10:14 | 显示全部楼层
zhao837747240 发表于 2013-7-18 10:11
有人能帮帮忙吗 确实不知道问题出在哪里 手册看了好几遍了 没什么问题啊

  PDC3=83;            // 占空比为0.5
这个83是十进制,若十六进制的话是0x83.这里对么
 楼主| zhao837747240 发表于 2013-7-18 10:19 | 显示全部楼层
地瓜patch 发表于 2013-7-18 10:14
PDC3=83;            // 占空比为0.5
这个83是十进制,若十六进制的话是0x83.这里对么
...

这个没问题的 可以直接写 我转化成2进制过 一样的输出结果  
 楼主| zhao837747240 发表于 2013-7-18 10:21 | 显示全部楼层
zhao837747240 发表于 2013-7-18 10:19
这个没问题的 可以直接写 我转化成2进制过 一样的输出结果

有人说占空比是PDC/(2*PTPER) 实际输出确实跟这个相符  但我看的手册里确实是PDC/PTPER啊
地瓜patch 发表于 2013-7-18 10:26 | 显示全部楼层
PDC/(2*PTPER)改成这个是正确的么?

我真没用过pic的pwm
jiemnij 发表于 2013-7-18 15:59 | 显示全部楼层
明显数据手册没仔细看.
PDC/(2*PTPER)  这个才是正确的
PTPER 是分辨率为Tcy
而 PDC的分辨率是Tcy/2
也就是说 它的PWM是可以 半周期控制的
看下图

本帖子中包含更多资源

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

×
 楼主| zhao837747240 发表于 2013-7-19 15:26 | 显示全部楼层
jiemnij 发表于 2013-7-18 15:59
明显数据手册没仔细看.
PDC/(2*PTPER)  这个才是正确的
PTPER 是分辨率为Tcy

多谢多谢 不过没看到过上图 下图没注意
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

15

帖子

0

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