SAM7X256 GCC Input interrupt

davidevisconti wrote on Wednesday, November 19, 2008:

Hi to all, I’m new in the forum.
I have a simple question because I’m frustrated…
how to set up an interrupt input  ???
On the internet i have found some example but nobody works!
Follow I post my simple code.
Thank you in advance and sorry for my bad english.
best regards,
Davide

INP1 is the PortA 21

This is in the main()

AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOA);
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOB);
AT91F_PIO_CfgInput (AT91C_BASE_PIOA, AT91C_ID_PIOA);   
AT91F_AIC_ConfigureItH (AT91C_BASE_AIC, AT91C_ID_PIOA, 5, AT91C_AIC_SRCTYPE_HIGH_LEVEL,  InterruptOnInput);
AT91F_PIO_InterruptEnable (AT91C_BASE_PIOA, (1 << INP1));  
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_PIOA);

…and the function InterruptOnInput

//***************************
void InterruptOnInput( void )
//***************************
{
    int dummy;   
 
    //* enable the next PIO IRQ
    dummy =AT91C_BASE_PIOA->PIO_ISR;
    //* suppress the compilation warning
    dummy = dummy;
    AT91C_BASE_AIC->AIC_EOICR=0x00;

   // Set the output for a visual verify
   // OUT5 = Port B 23 = 55
    AT91C_BASE_PIOB->PIO_CODR = 1 << OUT5;
}

davedoors wrote on Wednesday, November 19, 2008:

I think this question is more AT91 related than FreeRTOS related. You could post it to the AT91.com forum. There are examples in the FreeRTOS download though where the tick interrupt is set up and the ethernet interrupts are set up.