Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator 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.

Macros

#define AVR32_INTC_MAX_NUM_IRQS_PER_GRP   32
 Maximal number of interrupt request lines per group. More...
 
#define AVR32_INTC_NUM_INT_LEVELS   (1 << AVR32_INTC_IPR_INTLEVEL_SIZE)
 Number of interrupt priority levels. More...
 

Functions

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...
 

#define AVR32_INTC_MAX_NUM_IRQS_PER_GRP   32

Maximal number of interrupt request lines per group.

Referenced by INTC_register_interrupt().

#define AVR32_INTC_NUM_INT_LEVELS   (1 << AVR32_INTC_IPR_INTLEVEL_SIZE)

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.

void INTC_register_interrupt ( __int_handler  handler,
uint32_t  irq,
uint32_t  int_level 
)

Registers an interrupt handler.

Parameters
handlerInterrupt handler to register.
irqIRQ of the interrupt handler to register.
int_levelInterrupt priority level to assign to the group of this IRQ.
Warning
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.

Referenced by aic23b_codec_start(), and pwm_dac_start().