Thread 中讨论的其他器件: controlSUITE
工具/软件:
尊敬的团队:
我们实现了一个代码、该代码使用 tms320f28377s 的 gpio25 (DSP)接收85kHz 方波作为 ecap2输入、并在每个上升沿和下降沿生成 cevt。
我们在 CCS 调试模式下检查了 cevt 标志、它不会在每个上升沿出现、但发生频率较低。 如果我尝试根据输入信号的上升沿和下降沿正确生成 cevt、如何更改代码?
此外、如果根据中断中出现的 cevt 来控制 EPWM 的 TBCTR、我们想询问它是否应该链接到 EPWM XBar。
工程
//GPIO 设置
GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 3;
GpioCtrlRegs.GPADIR.bit.GPIO25 = 0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO25 = 0;
GpioCtrlRegs.GPAPUD.bit.GPIO25 = 0;
GpioCtrlRegs.GPACTRL.bit.QUALPRD3 = 1;
//main.c
EALLOW;
PieVectTable.ECAP2_INT =&ECAP2_ISR;
InputXbarRegs.INPUT8SELECT = 25;
EDIS;
ECap2Regs.ECEINT.all = 0x0000;
ECap2Regs.ECCLR.ALL = 0xFFFF;
ECap2Regs.ECCTL1.all=0x0000;
ECap2Regs.ECEINT.bit.CEVT1 = 1;
ECap2Regs.ECEINT.bit.CEVT2 = 1;
ECap2Regs.ECCTL1.bit.CAP1POL = 0;
ECap2Regs.ECCTL1.bit.CAP2POL = 1;
ECap2Regs.ECCTL1.bit.CTRRST1 = 1;
ECap2Regs.ECCTL1.bit.CTRRST2 = 1;
ECap2Regs.ECCTL1.bit.CAPLDEN = 1;
ECap2Regs.ECCTL2.bit.STOP_WRAP = 1;
ECap2Regs.ECCTL2.bit.CONT_ONESHT = 0;
ECap2Regs.ECCTL2.bit.TSCTRSTOP = 1;
ECap2Regs.ECCTL2.bit.CAP_APWM = 0;
ECap2Regs.ECCTL1.bit.prescale = 0;
ECap2Regs.ECCTL2.bit.rearm = 1;
IER |= M_INT4;
EALLOW;
PieCtrlRegs.PIEIER4.bit.INTx2 = 1;
EDIS;
//中断设置
中断无效 ECAP2_ISR (void)
{
//
//在此处插入 ISR 代码
//
数字= ECap2Regs.CAP1;
ECap2Regs.ECCLR.bit.CEVT1 = 1;
ECap2Regs.ECCLR.bit.CEVT2 = 1;
ECap2Regs.ECCLR.bit.INT = 1;
PieCtrlRegs.PIEACK.ALL = PIEACK_group4;
}
顺祝商祺!
吴俊英