为什么不是同频率呢?

2019-07-21 18:43发布

让EPWM1和EPWM2以相同的频率输出,只是前后相位不同,EPWM1主要设置如下(频率为100Hz)
        EPwm1Regs.TBPRD = 18750;
        EPwm1Regs.TBPHS.half.TBPHS = 0;
        EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
        EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
        EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
        EPwm1Regs.TBCTL.bit.SYNCOSEL =TB_CTR_ZERO;

        EPwm1Regs.TBCTL.bit.HSPCLKDIV = 2;
        EPwm1Regs.TBCTL.bit.CLKDIV = 2;   

        EPwm1Regs.CMPA.half.CMPA = 12500;
        EPwm1Regs.CMPB = 6250;
EPWM2的主要设置如下:
        EPwm2Regs.TBPRD = 18750;
        EPwm2Regs.TBPHS.half.TBPHS = 12500;                 
        EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN;
        EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;               //使能PHASE寄存器
        EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW;
        EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;

        EPwm2Regs.CMPA.half.CMPA = 12500;
        EPwm2Regs.CMPB = 6250;
为什么EPWM2的输出频率是800Hz,为什么不是同频率呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
jlyuan
1楼-- · 2019-07-22 13:23
我也正在写这方面的程序。但是想问一下楼主,楼主在实现的时候,是不是在epwm中断程序中加了EPwm2Regs.TBCTL.bit.SWFSYNC=1这样一句话,强制有一次同步信号,使相位寄存器能够加载。
dengdc
2楼-- · 2019-07-22 14:15
哦,楼上也是一样的问题?
jlyuan
3楼-- · 2019-07-22 14:29
我也是按照楼主这样写的,但相位还是一样
shimx
4楼-- · 2019-07-22 20:23
结贴了,多谢大家讨论这么多哈,呵呵
309030
5楼-- · 2019-07-23 01:23
 精彩回答 2  元偷偷看……
baimiaocun2015
6楼-- · 2019-07-23 02:53
这两个时钟源是相同的还是?

一周热门 更多>