/** * Generic PIO interrupt handler. Single entry point for interrupts coming * from any PIO controller (PIO A, B, C ...). Dispatches the interrupt to * the user-configured handlers. */ void PIO_IT_InterruptHandler(void) { PioInterruptHandler(ID_PIOA, PIOA); PioInterruptHandler(ID_PIOB, PIOB); PioInterruptHandler(ID_PIOC, PIOC); PioInterruptHandler(ID_PIOD, PIOD); PioInterruptHandler(ID_PIOE, PIOE); }
/** * \brief Parallel IO Controller A interrupt handler * \Redefined PIOA interrupt handler for NVIC interrupt table. */ extern void PIOA_IrqHandler( void ) { if ( PIOA->PIO_PCISR != 0 ) { PIO_CaptureHandler() ; } PioInterruptHandler( ID_PIOA, PIOA ) ; }
/** * \brief Parallel IO Controller C interrupt handler * \Redefined PIOC interrupt handler for NVIC interrupt table. */ extern void PIOC_IrqHandler( void ) { PioInterruptHandler( ID_PIOC, PIOC ) ; }
/** * \brief Parallel IO Controller B interrupt handler * \Redefined PIOB interrupt handler for NVIC interrupt table. */ extern void PIOB_IrqHandler( void ) { PioInterruptHandler( ID_PIOB, PIOB ) ; }
//------------------------------------------------------------------------------ /// Generic PIO interrupt handler. Single entry point for interrupts coming /// from any PIO controller (PIO A, B, C ...). Dispatches the interrupt to /// the user-configured handlers. //------------------------------------------------------------------------------ void InterruptHandler() { #if defined(AT91C_ID_PIOA) // Treat PIOA interrupts PioInterruptHandler(AT91C_ID_PIOA, AT91C_BASE_PIOA); #endif #if defined(AT91C_ID_PIOB) // Treat PIOB interrupts PioInterruptHandler(AT91C_ID_PIOB, AT91C_BASE_PIOB); #endif #if defined(AT91C_ID_PIOC) // Treat PIOC interrupts PioInterruptHandler(AT91C_ID_PIOC, AT91C_BASE_PIOC); #endif #if defined(AT91C_ID_PIOD) // Treat PIOD interrupts PioInterruptHandler(AT91C_ID_PIOD, AT91C_BASE_PIOD); #endif #if defined(AT91C_ID_PIOE) // Treat PIOE interrupts PioInterruptHandler(AT91C_ID_PIOE, AT91C_BASE_PIOE); #endif #if defined(AT91C_ID_PIOABCD) // Treat PIOABCD interrupts #if !defined(AT91C_ID_PIOA) PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOA); #endif #if !defined(AT91C_ID_PIOB) PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOB); #endif #if !defined(AT91C_ID_PIOC) PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOC); #endif #if !defined(AT91C_ID_PIOD) PioInterruptHandler(AT91C_ID_PIOABCD, AT91C_BASE_PIOD); #endif #endif #if defined(AT91C_ID_PIOABCDE) // Treat PIOABCDE interrupts #if !defined(AT91C_ID_PIOA) PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOA); #endif #if !defined(AT91C_ID_PIOB) PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOB); #endif #if !defined(AT91C_ID_PIOC) PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOC); #endif #if !defined(AT91C_ID_PIOD) PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOD); #endif #if !defined(AT91C_ID_PIOE) PioInterruptHandler(AT91C_ID_PIOABCDE, AT91C_BASE_PIOE); #endif #endif #if defined(AT91C_ID_PIOCDE) // Treat PIOCDE interrupts #if !defined(AT91C_ID_PIOC) PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOC); #endif #if !defined(AT91C_ID_PIOD) PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOD); #endif #if !defined(AT91C_ID_PIOE) PioInterruptHandler(AT91C_ID_PIOCDE, AT91C_BASE_PIOE); #endif #endif }