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.

Interrupt Priority

Other Parts Discussed in Thread: CONTROLSUITE

In 2XPM_Sensorless (controlsuite) program, PIE group 3 is enabled and the MainISR is called at every EPWM1_INT. This means to me that group 1 and group 2 interrupt will have higher priority than this. To experiment, I did the following:

1. Enalbed group 1 interrupt: PieCtrlRegs.PIEIER1.bit.INTx2 = 1; and IER |= M_INT1; and forcing the Flag inside the MainISR as: PieCtrlRegs.PIEIFR1.bit.INTx2 = 1;

2. The program jumps to the new service routine as I expected. However I expected that this new service routine for group 1 interrupt be serviced with higher priority than the MainISR. But my result shows that the group 3 interrupt retains its priority over group 1.

My question is: Am I wrong in the assumption that group 1 always has the most priortiy ? Or I am doing something wrong in my experiment to verity ?

  • Sibaprasad Chakrabarti said:

    In 2XPM_Sensorless (controlsuite) program, PIE group 3 is enabled and the MainISR is called at every EPWM1_INT. This means to me that group 1 and group 2 interrupt will have higher priority than this. To experiment, I did the following:

    1. Enalbed group 1 interrupt: PieCtrlRegs.PIEIER1.bit.INTx2 = 1; and IER |= M_INT1; and forcing the Flag inside the MainISR as: PieCtrlRegs.PIEIFR1.bit.INTx2 = 1;

    2. The program jumps to the new service routine as I expected. However I expected that this new service routine for group 1 interrupt be serviced with higher priority than the MainISR. But my result shows that the group 3 interrupt retains its priority over group 1.

    My question is: Am I wrong in the assumption that group 1 always has the most priortiy ? Or I am doing something wrong in my experiment to verity ?

    Interrupts are disabled (via the global mask INTM) when you enter an interrupt.  If you want to nest them, then the INTM needs to be cleared manually.  i.e it is left up to the user to make this decision.  The following wiki articles may help:

    http://processors.wiki.ti.com/index.php/Interrupt_Nesting_on_C28x

    http://processors.wiki.ti.com/index.php/Interrupt_FAQ_for_C2000

    Regards,

    Lori