链接仿真时,应用TZ触发,OST脉冲触发中断,TZEINT和PIE外设已经使能。
现在问题是:当发生GPIO为低,TZ触发能够封锁PWM脉冲,仿真打断点能够进入TZ触发中断,正常。但是如果不打断点,连续运行,即使TZ为低了,都不能进入tz触发中断?这是为何?
TZ触发中断,打断点和连续运行,有何区别?
Seven Han:您的代码是怎么写的呢?您可以测下TI的例程:\ti\controlSUITE\device_support\f2803x\v130\DSP2803x_examples_ccsv5\epwm_trip_zone
链接仿真时,应用TZ触发,OST脉冲触发中断,TZEINT和PIE外设已经使能。
现在问题是:当发生GPIO为低,TZ触发能够封锁PWM脉冲,仿真打断点能够进入TZ触发中断,正常。但是如果不打断点,连续运行,即使TZ为低了,都不能进入tz触发中断?这是为何?
TZ触发中断,打断点和连续运行,有何区别?
Eric Ma:”
现在问题是:当发生GPIO为低,TZ触发能够封锁PWM脉冲,仿真打断点能够进入TZ触发中断,正常。但是如果不打断点,连续运行,即使TZ为低了,都不能进入tz触发中断?这是为何?
TZ触发中断,打断点和连续运行,有何区别?“
ERIC:
打断点和连续运行在结果上应该是没什么区别的,你要看你是如何判断他进入中断的?
会不会是判断的原因。
链接仿真时,应用TZ触发,OST脉冲触发中断,TZEINT和PIE外设已经使能。
现在问题是:当发生GPIO为低,TZ触发能够封锁PWM脉冲,仿真打断点能够进入TZ触发中断,正常。但是如果不打断点,连续运行,即使TZ为低了,都不能进入tz触发中断?这是为何?
TZ触发中断,打断点和连续运行,有何区别?
user3900194:
回复 Eric Ma:
判断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,但是就是不进中断,是否进中断以“绿灯事宜”。