TMS320F2800157: epwm中断丢失

Part Number: TMS320F2800157
Other Parts Discussed in Thread: SYSBIOS

以下是我基于bios系统的epwm中断的代码,其中epwm中断优先级为最高的。但是在运行过程中,极小几率会触发epwm中断标志位清除不掉的情况,从而导致epwm中断再也进不去了。帮我看看是什么情况。下面是我epwm中断里的函数和代码。

#pragma CODE_SECTION(HwiPwmISR,"CalcRamfunc")
void HwiPwmISR(void)
{
    AdcCollection();
    Myprotect();
    pi_out();
    usart_overtime();
    watch_dog();
    EPwm1Regs.ETCLR.bit.INT = 1;
}

再下面是我cfg中,bios系统硬件中断的配置

var ti_sysbios_hal_Hwi0Params = new ti_sysbios_hal_Hwi.Params();
ti_sysbios_hal_Hwi0Params.instance.name = "hwi_pwm";
ti_sysbios_hal_Hwi0Params.priority = 15;
ti_sysbios_hal_Hwi0Params.eventId = -1;
Program.global.hwi_pwm = ti_sysbios_hal_Hwi.create(48, "&HwiPwmISR", ti_sysbios_hal_Hwi0Params);
// hwi1
var ti_sysbios_hal_Hwi1Params = new ti_sysbios_hal_Hwi.Params();
ti_sysbios_hal_Hwi1Params.instance.name = "hwi_sciarx";
ti_sysbios_hal_Hwi1Params.priority = 9;
Program.global.hwi_sciarx = ti_sysbios_hal_Hwi.create(96, "&HwiSciaRX", ti_sysbios_hal_Hwi1Params);
// hwi2
var ti_sysbios_hal_Hwi2Params = new ti_sysbios_hal_Hwi.Params();
ti_sysbios_hal_Hwi2Params.instance.name = "hwi_sciatx";
ti_sysbios_hal_Hwi2Params.priority = 8;
Program.global.hwi_sciatx = ti_sysbios_hal_Hwi.create(97, "&HwiSciaTX", ti_sysbios_hal_Hwi2Params);
// hwi1
var ti_sysbios_hal_Hwi3Params = new ti_sysbios_hal_Hwi.Params();
ti_sysbios_hal_Hwi3Params.instance.name = "hwi_scibrx";
ti_sysbios_hal_Hwi3Params.priority = 7;
Program.global.hwi_scibrx = ti_sysbios_hal_Hwi.create(98, "&HwiScibRX", ti_sysbios_hal_Hwi3Params);
// hwi2
var ti_sysbios_hal_Hwi4Params = new ti_sysbios_hal_Hwi.Params();
ti_sysbios_hal_Hwi4Params.instance.name = "hwi_scibtx";
ti_sysbios_hal_Hwi4Params.priority = 6;
Program.global.hwi_scibtx = ti_sysbios_hal_Hwi.create(99, "&HwiScibTX", ti_sysbios_hal_Hwi4Params);
// hwi1
var ti_sysbios_hal_Hwi5Params = new ti_sysbios_hal_Hwi.Params();
ti_sysbios_hal_Hwi5Params.instance.name = "hwi_scicrx";
ti_sysbios_hal_Hwi5Params.priority = 5;
Program.global.hwi_scicrx = ti_sysbios_hal_Hwi.create(100, "&HwiScicRX", ti_sysbios_hal_Hwi5Params);
// hwi2
var ti_sysbios_hal_Hwi6Params = new ti_sysbios_hal_Hwi.Params();
ti_sysbios_hal_Hwi6Params.instance.name = "hwi_scictx";
ti_sysbios_hal_Hwi6Params.priority = 4;
Program.global.hwi_scictx = ti_sysbios_hal_Hwi.create(101, "&HwiScicTX", ti_sysbios_hal_Hwi6Params);。