#include <at91sam7s256.h>
#define LED0 (1<<0) // PA0
#define LED1 (1<<1) // PA1
#define LED2 (1<<2) // PA2
#define LED3 (1<<3) // PA3
#define LED4 (1<<27) // PA27
#define LED5 (1<<28) // PA28
#define LED6 (1<<29) // PA29
#define LED7 (1<<30) // PA30
#define SW0 (1<<19) // PA19
#define SW1 (1<<20) // PA20
#define SW2 (1<<15) // PA15
#define SW3 (1<<14) // PA14
int ex_int_handler ()
{
AT91S_PIO *pPIO = AT91C_BASE_PIOA;
pPIO->PIO_CODR = LED0; // LED0 ON
}
int main()
{
AT91S_PIO *pPIO = AT91C_BASE_PIOA;
AT91S_PMC *pPMC = AT91C_BASE_PMC;
AT91S_AIC *pAIC = AT91C_BASE_AIC;
pPIO->PIO_OER = LED0; // Output Enable Register
pPIO->PIO_SODR = LED0; // LED0 OFF
pPMC->PMC_PCER = 1 << AT91C_ID_PIOA; // Peripheral Clock Enable Register
pPIO->PIO_IER = SW0; // Interrupt Enable Register PA19 SW0
pPIO->PIO_IMR = SW0; // Interrupt Mask Register PA19 SW0
pAIC->AIC_SVR[AT91C_ID_PIOA] = (unsigned int)ex_int_handler;
pAIC->AIC_IECR = (1 << AT91C_ID_PIOA);
while (1)
{
}
}


