[求助] PWM脉宽有点问题~

基辅之门   2014-11-8 11:21 楼主
我设置的PD0,PD1分别作为M1PWM0 M1PWM1

配置PWM模块1发生器0:递减模式,不同步

40M时钟不分频:SysCtlPWMClockSet(SYSCTL_PWMDIV_1);

频率2000Hz:PWMGenPeriodSet(PWM1_BASE, PWM_GEN_0, 20000);

脉宽设置,占空比10%:

PWMPulseWidthSet(PWM1_BASE, PWM_OUT_0,2000);
PWMPulseWidthSet(PWM1_BASE, PWM_OUT_1,2000);
PWMDeadBandEnable(PWM1_BASE, PWM_GEN_0, 100, 100);//死区:上升沿下降沿均为100周期

但实测发现实际pwm波频率不是2khz,而是2.5k。

PD0口比较正常,PD1口波形占空比竟然不是10%而是90%(目测)

调试很久无果。。。求教啊

回复评论 (2)

通过PWMOutputInvert设置翻转电平可以解决占空比问题,但不过我的发生器gen1出来的两路波PWM0 PWM1这个翻转电平设置刚好是反的输出才对,就是一个true一个false。。我其他设置一样啊。。。最搞不懂的是频率2.5k而不是设置的2k
点赞  2014-11-8 11:38
引用: 基辅之门 发表于 2014-11-8 11:38
通过PWMOutputInvert设置翻转电平可以解决占空比问题,但不过我的发生器gen1出来的两路波PWM0 PWM1这个翻转 ...

根据你结果反推来看,你的系统时钟实际上应该不是你说的 40Mhz,是 50Mhz 吧?确认一下。
点赞  2014-11-10 10:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复