TI中文支持网
TI专业的中文技术问题咨询交流网站

F28069的ecap模块,Ecap中的CAP1、CAP2、CAP3、CAP4寄存器的值都是一样的。

最近在调试F28069的Ecap模块,使用Ecap捕获PWM的上升下降沿来计算PWM的占空比,按照官方的例程进行配置

初始化程序如下:

在进入中断后查看,CAP1、CAP2、CAP3、CAP4的值与计数器TSCTR的值都相同。

测试的PWM的周期为1.8ms。

不知是何原因?

Eric Ma:

CTRRST4

把这些位都改成0.

Counter Reset on Capture Event 40 Do not reset counter on Capture Event 4 (absolute time stamp operation)1 Reset counter after Capture Event 4 time-stamp has been captured(used in difference mode operation)

最近在调试F28069的Ecap模块,使用Ecap捕获PWM的上升下降沿来计算PWM的占空比,按照官方的例程进行配置

初始化程序如下:

在进入中断后查看,CAP1、CAP2、CAP3、CAP4的值与计数器TSCTR的值都相同。

测试的PWM的周期为1.8ms。

不知是何原因?

kai li1:

回复 Eric Ma:

感谢您的回答,改过之后,调试的结果还是一样的,捕获的值还是一样的。

最近在调试F28069的Ecap模块,使用Ecap捕获PWM的上升下降沿来计算PWM的占空比,按照官方的例程进行配置

初始化程序如下:

在进入中断后查看,CAP1、CAP2、CAP3、CAP4的值与计数器TSCTR的值都相同。

测试的PWM的周期为1.8ms。

不知是何原因?

kai li1:

回复 Eric Ma:

感谢您的回答,修改后调试的结果还是没有变化,四个CAP的值还是一样的

最近在调试F28069的Ecap模块,使用Ecap捕获PWM的上升下降沿来计算PWM的占空比,按照官方的例程进行配置

初始化程序如下:

在进入中断后查看,CAP1、CAP2、CAP3、CAP4的值与计数器TSCTR的值都相同。

测试的PWM的周期为1.8ms。

不知是何原因?

Eric Ma:

回复 kai li1:

你用例程对比测试一下吧。

我按下面的修改是可以看到绝对值的变化的。当然,如果设置为1的话,那么就是差值,几个寄存器都是一样的。

ECap1Regs.ECCTL1.bit.CTRRST1 = 0; // Difference operation ECap1Regs.ECCTL1.bit.CTRRST2 = 0; // Difference operation ECap1Regs.ECCTL1.bit.CTRRST3 = 0; // Difference operation ECap1Regs.ECCTL1.bit.CTRRST4 = 0; // Difference operation

C:\ti\controlSUITE\device_support\f2806x\v151\F2806x_examples_ccsv5\ecap_capture_pwm

// Cap input is syc'ed to SYSCLKOUT so there may be // a +/- 1 cycle variation // if(ECap1Regs.CAP2 > EPwm3Regs.TBPRD*2+1 || ECap1Regs.CAP2 < EPwm3Regs.TBPRD*2-1)// {// Fail();// }//// if(ECap1Regs.CAP3 > EPwm3Regs.TBPRD*2+1 || ECap1Regs.CAP3 < EPwm3Regs.TBPRD*2-1)// {// Fail();// }//// if(ECap1Regs.CAP4 > EPwm3Regs.TBPRD*2+1 || ECap1Regs.CAP4 < EPwm3Regs.TBPRD*2-1)// {// Fail();// }

ECap1IntCount++;

// if(EPwm3TimerDirection == EPWM_TIMER_UP)// {// if(EPwm3Regs.TBPRD < PWM3_TIMER_MAX)// {// EPwm3Regs.TBPRD++;// }// else// {// EPwm3TimerDirection = EPWM_TIMER_DOWN;// EPwm3Regs.TBPRD–;// }// }// else// {// if(EPwm3Regs.TBPRD > PWM3_TIMER_MIN)// {// EPwm3Regs.TBPRD–;// }// else// {// EPwm3TimerDirection = EPWM_TIMER_UP;// EPwm3Regs.TBPRD++;// }// }

最近在调试F28069的Ecap模块,使用Ecap捕获PWM的上升下降沿来计算PWM的占空比,按照官方的例程进行配置

初始化程序如下:

在进入中断后查看,CAP1、CAP2、CAP3、CAP4的值与计数器TSCTR的值都相同。

测试的PWM的周期为1.8ms。

不知是何原因?

qiang zhang:你好,你这个问题怎么解决的?

最近在调试F28069的Ecap模块,使用Ecap捕获PWM的上升下降沿来计算PWM的占空比,按照官方的例程进行配置

初始化程序如下:

在进入中断后查看,CAP1、CAP2、CAP3、CAP4的值与计数器TSCTR的值都相同。

测试的PWM的周期为1.8ms。

不知是何原因?

user4329368:

回复 qiang zhang:

我也是这个问题,一旦进入中断,Ecapx的值就和SCTR的值一样了。

赞(0)
未经允许不得转载:TI中文支持网 » F28069的ecap模块,Ecap中的CAP1、CAP2、CAP3、CAP4寄存器的值都是一样的。
分享到: 更多 (0)