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.

XINT1 on 28069



Hi all,

I want to use GPIO9 to call XINT1.

------------------------------------------------------------------

GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 9;

GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 0;
GpioCtrlRegs.GPADIR.bit.GPIO9 = 0;
GpioCtrlRegs.GPAQSEL1.bit.GPIO9 = 3;

XIntruptRegs.XINT1CR.bit.ENABLE = 1;
XIntruptRegs.XINT1CR.bit.POLARITY = 1;

PieCtrlRegs.PIEIER1.bit.INTx4 = 1;    // Enable 1.4 in PIE    
IER |= M_INT1;

----------------------------------------------------------------

#define    INT1PL      1        // Group1 Interrupts (PIEIER1)

#define    G14PL       2        // XINT1       (External)

----------------------------------------------------------------

// Connected to PIEIER1_4 (use MINT1 and MG14 masks):
#if (G14PL != 0)
interrupt void  XINT1_ISR(void)
{
    // Set interrupt priority:
    volatile Uint16 TempPIEIER = PieCtrlRegs.PIEIER1.all;
    IER |= MINT1;                      // Set "global" priority
    PieCtrlRegs.PIEIER1.all &= MG14;   // Set "group"  priority
    PieCtrlRegs.PIEACK.all = 0xFFFF;   // Enable PIE interrupts
    EINT;

       External_interrupt_on_GPIO9();

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

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

-------------------------------------------------------------

When i have a transition on GPIO9, the interrupt is not called.

What do I forget?

Thanks in advance,

M