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.

Modules

 

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.

Referenced by init_board(), init_pdca(), main(), and pdca_set_irq().

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 can_enable_interrupt(), init_pdca(), lin_init(), local_pdca_init(), main(), pdca_set_irq(), prvSetupMACBInterrupt(), rtouch_prepare_adc(), rtouch_prepare_detect(), start_scheduler(), and xSerialPortInitMinimal().