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.

280x tz中断

重新写写问题,断点时能够进TZ触发中断,不打断点,全速运行时,不能进中断。

判断GPIO16是否为低,进中断。我是将GPIO16引线手动接触GND进行拉低。

初始化:
EALLOW;
EPwm7Regs.TZCLR.bit.OST = 1; 
EPwm7Regs.TZCLR.bit.INT = 1;
EPwm7Regs.TZSEL.bit.OSHT1 = 1;
EPwm7Regs.TZCTL.bit.TZA = TZ_FORCE_LO;
EPwm7Regs.TZCTL.bit.TZB = TZ_FORCE_LO;
EPwm7Regs.TZEINT.bit.OST = 1;
EDIS;
使能中断组:PIE外设中断
EALLOW;
PieVectTable.EPWM7_TZINT = &tz7int_isr;
EDIS;
PieCtrlRegs.PIEIER2.bit.INTx7 = TZINT7_ENABLE;
当GPIO16为低时,触发中断:
GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0; // (TZ1)
GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 3; // (TZ1)
GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 3; //
中断函数:
interrupt void tz7int_isr(void)
{
...绿灯亮...
}

当将GPIO16拉低至GND时,打断点能够,进入tz7int_isr函数,连续运行没有不能进tz7int_isr函数,但是能够看到TZ中断标志位置1了:EPwm7Regs.TZFLG.bit.OST=1,EPwm7Regs.TZFLG.bit.INT=1,但是就是不进中断,是否进中断以“绿灯事宜”。