X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/063474561de084fbdd8c1ddc02fcce5b8abebe3e..a032d77d0e8009a3ef7e1666f144cde6f08f800e:/LUFA/Platform/UC3/InterruptManagement.h diff --git a/LUFA/Platform/UC3/InterruptManagement.h b/LUFA/Platform/UC3/InterruptManagement.h index af99f0875..e9efbf311 100644 --- a/LUFA/Platform/UC3/InterruptManagement.h +++ b/LUFA/Platform/UC3/InterruptManagement.h @@ -41,8 +41,8 @@ * * \section Sec_Dependencies Module Source Dependencies * The following files must be built with any user project that uses this module: - * - LUFA/Platform/UC3/InterruptManagement.c - * - LUFA/Platform/UC3/Exception.S + * - LUFA/Platform/UC3/InterruptManagement.c (Makefile source module name: LUFA_SRC_PLATFORM) + * - LUFA/Platform/UC3/Exception.S (Makefile source module name: LUFA_SRC_PLATFORM) * * \section Sec_ModDescription Module Description * Interrupt controller driver for the AVR32 UC3 microcontrollers, for the configuration of interrupt @@ -71,7 +71,7 @@ #define _UC3_INTERRUPT_MANAGEMENT_H_ /* Includes: */ - #include + #include "../../Common/Common.h" /* Enable C linkage for C++ Compilers: */ #if defined(__cplusplus) @@ -93,7 +93,7 @@ /* Public Interface - May be used in end-application: */ /* Macros: */ - /** Converts a given interrupt index into its assocated interrupt group. + /** Converts a given interrupt index into its associated interrupt group. * * \param[in] IRQIndex Index of the interrupt request to convert. * @@ -101,7 +101,7 @@ */ #define INTC_IRQ_GROUP(IRQIndex) (IRQIndex / 32) - /** Converts a given interrupt index into its assocated interrupt line. + /** Converts a given interrupt index into its associated interrupt line. * * \param[in] IRQIndex Index of the interrupt request to convert. * @@ -110,10 +110,19 @@ #define INTC_IRQ_LINE(IRQIndex) (IRQIndex % 32) /* Function Prototypes: */ - /** Initializes the interrupt controller, nulling out all interrupt handlers ready for new registration. This - * function should be called once on startup to ensure the interrupt controller is ready for use. + /** Initializes the interrupt controller ready to handle interrupts. This must be called at the + * start of the user program before any interrupts are registered or enabled. */ - void INTC_Init(void); + void INTC_Init(void); + + /** Retrieves the associated interrupt handler for the interrupt group currently being fired. This + * is called directly from the exception handler routine before dispatching to the ISR. + * + * \param[in] InterruptLevel Priority level of the interrupt. + * + * \return Pointer to the associated interrupt handler function, or NULL if no handler set. + */ + InterruptHandlerPtr_t INTC_GetInterruptHandler(const uint_reg_t InterruptLevel); /* Inline Functions: */ /** Registers a handler for a given interrupt group. On the AVR32 UC3 devices, interrupts are grouped by