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.

TMS320F280049C: F280049的ECAP模块中断问题

Part Number: TMS320F280049C

void Cap1_Config(void)
{
EALLOW;
InputXbarRegs.INPUT1SELECT = 11; //INPUT1使用GPIO11作为输入XBAR
GpioCtrlRegs.GPAPUD.bit.GPIO11 = 1; // Enable pull-up
GpioCtrlRegs.GPAQSEL1.bit.GPIO11 = 0; //同步采样,与系统时钟同步
GpioCtrlRegs.GPADIR.bit.GPIO11 = 0; //配置为输入引脚

ECap1Regs.ECCTL0.bit.INPUTSEL = 0; //ECAP1捕获引脚对应INPUT1

ECap1Regs.ECCTL1.bit.CAP1POL = 0; //事件1在上升沿触发
ECap1Regs.ECCTL1.bit.CAP2POL = 1; //事件2在下降沿触发
ECap1Regs.ECCTL1.bit.CAP3POL = 0; //事件3在上升沿触发
ECap1Regs.ECCTL1.bit.CAP4POL = 1; //事件4在下降沿触发

ECap1Regs.ECCTL1.bit.CTRRST1 = 0; //事件1后不复位计数器
ECap1Regs.ECCTL1.bit.CTRRST2 = 0; //事件2后不复位计数器
ECap1Regs.ECCTL1.bit.CTRRST3 = 0; //事件3后复位计数器
ECap1Regs.ECCTL1.bit.CTRRST4 = 0; //事件4后复位计数器

ECap1Regs.ECCTL1.bit.PRESCALE = 0; //事件分频器,不分频
ECap1Regs.ECCTL1.bit.CAPLDEN = 1; //使能CAP1~CAP4事件发生时,加载TSCTR计数器的值

ECap1Regs.ECCTL2.bit.CAP_APWM = 0; //配置ECAP1模块为ECAP功能
ECap1Regs.ECCTL2.bit.SYNCI_EN = 0; //不使能同步计数器TSCTR装载相位寄存器CTRPHS的值
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 2; //不使能同步信号输出
ECap1Regs.ECCTL2.bit.CONT_ONESHT = 0; //连续模块

ECap1Regs.ECEINT.all = 0x0000; // Disable all capture interrupts 清除所有中断
ECap1Regs.ECCLR.all = 0xFFFF; // Clear all CAP interrupt flags 清除所有ecap中断标志
ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0; // Start Counter 计数器TSCTR控制位,0计数停止,1运行

ECap1Regs.ECEINT.bit.CEVT1 = 1; // 1 events = interrupt 捕获CEVT1事件中断使能位,0禁止中断,1允许中断
ECap1Regs.ECEINT.bit.CEVT2 = 0;
ECap1Regs.ECEINT.bit.CEVT3 = 0;
ECap1Regs.ECEINT.bit.CEVT4 = 0;

ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1; //开始计数器运行

EDIS;
}

__interrupt void ECap1ISR(void)
{
ECap1Regs.ECCLR.bit.INT = 1; //清除中断标志位
ECap1Regs.ECCLR.bit.CEVT3 = 1;
ECap1Regs.ECCTL2.bit.REARM = 1;

ECap1Regs.ECCLR.all = 0xFFFF;

// EPwm1Regs.TBCTL.bit.SWFSYNC = 1; //软件强制同步脉冲
PEBB1.VDCPWM++;

PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;

}

这边配置为事件1触发中断,每次进中断PEBB1.VDCPWM加1,但是出现问题,在线调试是每次触发直接+的2,每次触发进入了两次中断,硬件方面是信号发生器,方波直接给到DSP,请各位大佬帮忙分析一下