This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TMS320F2806:您能告诉我一些 ECAP 问题吗? ㅜㅜ μ A

Guru**** 2348500 points
Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/749753/ccs-tms320f2806-can-you-tell-me-some-of-the-ecap-problem

器件型号:TMS320F2806
主题中讨论的其他器件:C2000WARE

工具/软件:Code Composer Studio

大家好、我想问您一些 ECAP 问题

嗯、我需要获取上升沿和下降沿中断、但我认为只发生上升中断...

您能告诉我如何获取这两个中断吗?


空 InitECapture1()


ECap1Regs.ECEINT.ALL = 0x0000;//禁用 eCAP1上的所有中断
ECap1Regs.ECCLR.ALL = 0xFFFF;//清除 eCAP1的所有中断标志

ECap1Regs.TSCTR = 0;//将时间戳计数器设置为0
ECap1Regs.CTRPHS = 0;//将时间戳计数器相位寄存器设置为0
ECap1Regs.CAP1 = 0;//将捕捉寄存器1设置为0
ECap1Regs.CAP2 = 0;//将捕捉寄存器2设置为0

ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0;//确保计数器被停止
ECap1Regs.ECCTL1.bit.CAPLDEN = 0;//启用 CAP1-CAP4寄存器加载

ECap1Regs.ECCTL1.bit.FREE_SOFT = 2;//计数器在仿真挂起时不会停止
ECap1Regs.ECCTL1.bit.prescale = 0;//预分频设置为1分频

ECap1Regs.ECCTL1.bit.CAP1POL = 0;// CAP1寄存器将在上升沿进行捕捉
ECap1Regs.ECCTL1.bit.CAP2POL = 1;// CAP2寄存器将在下降边沿捕捉

ECap1Regs.ECCTL1.bit.CTRST1 = 1;//捕获事件后的复位计数器1.
ECap1Regs.ECCTL1.bit.CTRST2 = 1;//捕捉事件2上不复位计数器

ECap1Regs.ECCTL2.bit.CAP_APWM = 0;//启用 ECAP 模式
ECap1Regs.ECCTL2.bit.STOP_Wrap = 3;//在单次模式下捕获事件1后自动换行
ECap1Regs.ECCTL2.bit.CONT_ONESHT = 0;//在连续模式下运行
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 2;//同步输出信号被禁用
ECap1Regs.ECCTL2.bit.SYNCI_EN = 0;//同步输入被禁用

ECap1Regs.ECEINT.BIT.CEVT1 = 0;//启用1个中断
ECap1Regs.ECEINT.BIT.CEVT2 = 1;//启用2个中断 TRSTOP = 1;//启动计时器计数器

// ECap1Regs.ECCTL1.bit.free_soft = 2;//计数器不受仿真模式的影响
//
// PieCtrlRegs.PIEACK.bit.ACK4 = 1;//启用 PIECTRL 的 Group4.x 中断

_interrupt void H1 (void){

posH1++;

ECap1Regs.ECCLR.bit.CEVT1 = 1;
ECap1Regs.ECCLR.bit.CEVT2 = 1;


ECap1Regs.ECCLR.bit.INT = 1;//通知中断被清除
ECap1Regs.ECCTL2.bit.rearm = 1;

PieCtrlRegs.PIEACX.ALL = PIEACK_group4;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您可以参阅 C2000Ware 示例*\device_support\f28066\examples\c28\ECAP_CAPTURE_PWM\example_2806xECap_Capture_PWM.c 此示例在 ECAP 输入引脚上的脉冲(上升->下降->上升->下降)触发中断。

    以下几项建议:
    SYNCI_EN=1 (启用同步输入)
    TSCTRSTOP=1 (启动计数器)

    此致、
    Nirav
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    如果您仍发现任何问题、请告诉我。 如果不是、请关闭螺纹。

    谢谢、此致、
    Nirav