参照例程1、interrupt\interrupt_ex3_sw_prioritization.c
2、ipc_ex1_basic_c28x1.c
3、ipc_ex1_basic_cm.c
无法在epwm中断里面,嵌套来自M4触发的ipc中断
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.
参照例程1、interrupt\interrupt_ex3_sw_prioritization.c
2、ipc_ex1_basic_c28x1.c
3、ipc_ex1_basic_cm.c
无法在epwm中断里面,嵌套来自M4触发的ipc中断
EPWM的中断嵌套设置:
__interrupt void epwm1ISR(void)
{
//
// Save IER register on stack
//
volatile uint16_t tempPIEIER = HWREGH(PIECTRL_BASE + PIE_O_IER3);
//
// Set the global and group priority to allow CPU interrupts
// with higher priority
IER |= M_INT3;
IER &= MINT3;
HWREGH(PIECTRL_BASE + PIE_O_IER3) &= MG3_1;
//
// Clear INT flag for this timer
//
EPWM_clearEventTriggerInterruptFlag(EPWM1_BASE);
//
// Enable Interrupts
//
Interrupt_clearACKGroup(0xFFFFU);
__asm(" NOP");
EINT;
// Insert ISR Code here.......
epwm_ISR();
//
// Disable interrupts and restore registers saved:
//
DINT;
HWREGH(PIECTRL_BASE + PIE_O_IER3) = tempPIEIER;
//Add ISR to Trace
traceISR[traceISRIndex % TRACE_SIZE] = 0x0017;
traceISRIndex++;
}中断嵌套的宏定义:
全局:
#define INT1PL 0 // Global Priority for Group1 Interrupts #define INT2PL 0 // Global Priority for Group2 Interrupts #define INT3PL 16 // Global Priority for Group3 #define INT4PL 0 // Global Priority for Group4 Interrupts #define INT5PL 0 // Global Priority for Group5 Interrupts #define INT6PL 0 // Global Priority for Group6 #define INT7PL 0 // Global Priority for Group7 Interrupts #define INT8PL 0 // Global Priority for Group8 Interrupts #define INT9PL 0 // Global Priority for Group9 #define INT10PL 0 // Global Priority for Group10 Interrupts #define INT11PL 1 // Global Priority for Group11 Interrupts #define INT12PL 0 // Global Priority for Grou #define INT13PL 0 // Global Priority for INT13 (TINT1) #define INT14PL 0 // Global Priority for INT14 (TINT2) #define INT15PL 0 // Global Priority for DATALOG #define INT16PL 0 // Global Priority for RTOSINT
组:
#define G3_1PL 1 // EPWM1_INT #define G3_2PL 0 // EPWM2_INT #define G3_3PL 0 // EPWM3_INT #define G3_4PL 0 // EPWM4_INT #define G3_5PL 0 // EPWM5_INT #define G3_6PL 0 // EPWM6_INT #define G3_7PL 0 // EPWM7_INT #define G3_8PL 0 // EPWM8_INT #define G3_9PL 0 // EPWM9_INT #define G3_10PL 0 // EPWM10_INT #define G3_11PL 0 // EPWM11_INT #define G3_12PL 0 // EPWM12_INT #define G3_13PL 0 // EPWM13_INT #define G3_14PL 0 // EPWM14_INT #define G3_15PL 0 // EPWM15_INT #define G3_16PL 0 // EPWM16_INT #define G11_1PL 0 // CLA1_1_INT #define G11_2PL 0 // CLA1_2_INT #define G11_3PL 0 // CLA1_3_INT #define G11_4PL 0 // CLA1_4_INT #define G11_5PL 0 // CLA1_5_INT #define G11_6PL 0 // CLA1_6_INT #define G11_7PL 0 // CLA1_7_INT #define G11_8PL 0 // CLA1_8_INT #define G11_9PL 1 // CMTOCPUXIPC0_INT #define G11_10PL 0 // CMTOCPUXIPC1_INT #define G11_11PL 0 // CMTOCPUXIPC2_INT #define G11_12PL 0 // CMTOCPUXIPC3_INT #define G11_13PL 0 // CMTOCPUXIPC4_INT #define G11_14PL 0 // CMTOCPUXIPC5_INT #define G11_15PL 0 // CMTOCPUXIPC6_INT #define G11_16PL 0 // CMTOCPUXIPC7_INT