Microchip® Advanced Software Framework

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
INTC Software Driver API for AVR UC3

This is a software module to register interrupt handlers at any specified interrupt level to any interrupt line managed by the INTC module in AVR UC3 devices.




 Maximal number of interrupt request lines per group. More...
 Number of interrupt priority levels. More...


void INTC_init_interrupts (void)
 Initializes the hardware interrupt controller driver. More...
void INTC_register_interrupt (__int_handler handler, uint32_t irq, uint32_t int_level)
 Registers an interrupt handler. More...


Maximal number of interrupt request lines per group.


Number of interrupt priority levels.

void INTC_init_interrupts ( void  )

Initializes the hardware interrupt controller driver.

References _int_handler_table, _unhandled_interrupt(), INTC_init_evba(), and IPR_INT0.

Referenced by main(), and pdca_set_irq().

void INTC_register_interrupt ( __int_handler  handler,
uint32_t  irq,
uint32_t  int_level 

Registers an interrupt handler.

handlerInterrupt handler to register.
irqIRQ of the interrupt handler to register.
int_levelInterrupt priority level to assign to the group of this IRQ.
The interrupt handler must manage the `rete' instruction, which can be done using pure assembly, inline assembly or the `__attribute__((interrupt))' C function attribute.
If several interrupt handlers of a same group are registered with different priority levels, only the latest priority level set will be effective.

References _int_handler_table, AVR32_INTC_MAX_NUM_IRQS_PER_GRP, IPR_INT0, IPR_INT1, IPR_INT2, and IPR_INT3.