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.

DSP28069程序运行时会自动进SCIRXINTA_ISR中断

Other Parts Discussed in Thread: CONTROLSUITE

Ti工程师您好:

我使用的是DSP28069,工程使用更改中断优先级的功能,把F2806x_SWPrioritizedDefaultIsr.c、F2806x_SWPrioritizedPieVect.c、F2806x_SWPrioritizedIsrLevels.h这几个文件替换后,程序运行的工程中会随机的进入SCIRXINTA_ISR中断,我确定没有使能中断,

PieCtrlRegs.PIEIER1.bit.INTx1= 0;并且也没有用到这个中断。请问这个问题怎么解决。

#if (G91PL != 0)

__interrupt void SCIRXINTA_ISR(void) // SCI-A
{
// Set interrupt priority:
volatile Uint16 TempPIEIER = PieCtrlRegs.PIEIER9.all;
IER |= M_INT9;
IER &= MINT9; // Set "global" priority
PieCtrlRegs.PIEIER9.all &= MG91; // Set "group" priority
PieCtrlRegs.PIEACK.all = 0xFFFF; // Enable PIE interrupts
EINT;

// Insert ISR Code here.......

// Restore registers saved:
DINT;
PieCtrlRegs.PIEIER9.all = TempPIEIER;

// Next two lines for debug only to halt the processor here
// Remove after inserting ISR Code
__asm (" ESTOP0");
for(;;);

}
#endif

期待您的回复,谢谢

  • “更改中断优先级”是怎么做的?C2000系列是不支持更改中断优先级的,只能通过中断嵌套的方式达到更改中断优先级的目的。可以参考:
    processors.wiki.ti.com/.../Interrupt_Nesting_on_C28x
  • 您好:可能我对这个理解的不是很充分,我是按照controlSUITE中的sw_prioritized_interrupts这个例程配置的,我就是把F2806x_SWPrioritizedDefaultIsr.c、F2806x_SWPrioritizedPieVect.c、F2806x_SWPrioritizedIsrLevels.h这几个文件替换后实现的,应该和您说的意思是一样的,正常配置的中断可以实现,就是随机的进入interrupt void SCIRXINTA_ISR这个中断。我担心哪里配置的不合理,以后还会进入其他中断,导致以后程序不稳定。希望您能给指点一下,谢谢