TI中文支持网
TI专业的中文技术问题搜集分享网站

28335的epwm的时基模块TBCTR在程序里任意时刻人为重新使能后,能重新从0开始计数吗?谢谢

28335的epwm的时基模块TBCTR在程序里任意时刻人为重新使能后,能重新从0开始计数吗?谢谢,试了好多办法,比如关闭时钟TBCLKSYNC再开启,给TBCTR装初值,给TBPHS相位寄存器赋值0,再来一条TBCTL[SWFSYNC],好像都不行,现在怀疑28335有这个功能吗?能人为在某一时刻把TBCTR重新装0再开始吗?我现在只用了一路EPWM1,谢谢

ChuShan Zhang:

回复 Seven Han:

不是啊,我做这个的目的是想切换控制策略,退出我自己的控制策略,然后想立刻切换到传统的PI控制。

在我退出自己的控制策略后,我立马写了如下语句:

EPwm1Regs.TBCTL.bit.PHSDIR = 1; EPwm1Regs.TBPHS.half.TBPHS = 0x0000; EPwm1Regs.TBCTL.bit.PHSEN=1; EPwm1Regs.TBCTL.bit.SWFSYNC=1; EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;// Enable TBCLK within the ePWM EDIS; EALLOW; SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;// Enable TBCLK within the ePWM EDIS;

但是发现在我退出我的控制策略到正式进入新一轮的PI控制的epwm中断,中间存在较长时间的时间间隔(大概半个开关周期)。我的分析是,在我退出我自己的控制策略的那一刻,TBCTR的值并不为0,等到TBCTR在某个值先增大到TBPRD在减小到0后(我用了增减模式),才能正式进入新一轮EPWM中断进行新的PI控制。我只用了一路EPWM,我的目标是在我退出的那一瞬间希望TBCTR的值为0,但是一直实现不了。谢谢了啊

赞(0)
未经允许不得转载:TI中文支持网 » 28335的epwm的时基模块TBCTR在程序里任意时刻人为重新使能后,能重新从0开始计数吗?谢谢
分享到: 更多 (0)