最近在调试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的值一样了。