Microchip® Advanced Software Framework

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Global interrupt management

This is a driver for global enabling and disabling of interrupts.

Modules

 
 Deprecated interrupt definitions
 

Macros

#define CONFIG_INTERRUPT_FORCE_INTC
 Force usage of the ASF INTC driver. More...
 
#define ISR(vect)
 Define service routine for specified interrupt vector. More...
 

Global interrupt flags

typedef uint8_t irqflags_t
 Type used for holding state of interrupt flag. More...
 
static irqflags_t cpu_irq_save (void)
 Get and clear the global interrupt flags. More...
 
static void cpu_irq_restore (irqflags_t flags)
 Restore global interrupt flags. More...
 
static bool cpu_irq_is_enabled_flags (irqflags_t flags)
 Check if interrupts are globally enabled in supplied flags. More...
 
#define cpu_irq_enable()   sei()
 Enable interrupts globally. More...
 
#define cpu_irq_disable()   cli()
 Disable interrupts globally. More...
 
#define cpu_irq_is_enabled()   cpu_irq_is_enabled_flags(SREG)
 Check if interrupts are globally enabled. More...
 

#define CONFIG_INTERRUPT_FORCE_INTC

Force usage of the ASF INTC driver.

Predefine this symbol when preprocessing to force the use of the ASF INTC driver. This is useful to ensure compatibility across compilers and shall be used only when required by the application needs.

#define cpu_irq_disable ( )    cli()

Disable interrupts globally.

Referenced by cpu_irq_save(), ISR(), sensor_board_init(), and sleepmgr_enter_sleep().

#define cpu_irq_is_enabled ( )    cpu_irq_is_enabled_flags(SREG)

Check if interrupts are globally enabled.

Returns
True if interrupts are enabled.
#define ISR (   vect)

Define service routine for specified interrupt vector.

Usage:

ISR(FOO_vect)
{
...
}
Parameters
vectInterrupt vector name as found in the device header files.

Type used for holding state of interrupt flag.

bool cpu_irq_is_enabled_flags ( irqflags_t  flags)
inlinestatic

Check if interrupts are globally enabled in supplied flags.

Parameters
flagsCurrents state of interrupt flags.
Returns
True if interrupts are enabled.
void cpu_irq_restore ( irqflags_t  flags)
inlinestatic

Restore global interrupt flags.

Use in conjunction with cpu_irq_save.

Parameters
flagsState to set interrupt flag to.

References barrier.

Referenced by ac_disable(), ac_enable(), ac_read_config(), ac_write_config(), adc_disable(), adc_enable(), adc_flush(), adc_get_signed_compare_value(), adc_get_signed_result(), adc_get_unsigned_compare_value(), adc_get_unsigned_result(), adc_read_configuration(), adc_set_callback(), adc_start_conversion(), adc_write_configuration(), adcch_read_configuration(), adcch_write_configuration(), arch_ioport_disable_pin(), arch_ioport_disable_port(), arch_ioport_enable_pin(), arch_ioport_enable_port(), arch_ioport_set_pin_mode(), arch_ioport_set_pin_sense_mode(), arch_ioport_set_port_mode(), arch_ioport_set_port_sense_mode(), dac_disable(), dac_enable(), dac_get_channel_value(), dac_read_configuration(), dac_set_channel_value(), dac_write_configuration(), dma_channel_disable(), dma_channel_enable(), dma_channel_read_config(), dma_channel_reset(), dma_channel_trigger_block_transfer(), dma_channel_write_burst_length(), dma_channel_write_config(), dma_channel_write_destination(), dma_channel_write_repeats(), dma_channel_write_source(), dma_channel_write_transfer_count(), dma_set_double_buffer_mode(), dma_set_priority_mode(), ebi_cs_read_config(), ebi_cs_write_config(), ebi_disable_cs(), ebi_enable_cs(), ebi_sdram_disable_self_refresh(), ebi_sdram_enable_self_refresh(), ebi_sdram_read_config(), ebi_sdram_write_config(), ili9341_send_byte(), osc_disable(), osc_enable_autocalibration(), osc_enable_external(), osc_enable_internal(), pll_disable(), pll_enable(), rtc_get_time(), sleepmgr_lock_mode(), sleepmgr_unlock_mode(), sysclk_disable_module(), sysclk_enable_module(), tc_disable(), tc_enable(), timeout_start_offset(), timeout_stop(), timeout_test_and_clear_expired(), twim_acquire(), win_are_events_pending(), win_pop_front_event(), and win_queue_event().

irqflags_t cpu_irq_save ( void  )
inlinestatic

Get and clear the global interrupt flags.

Use in conjunction with cpu_irq_restore.

Returns
Current state of interrupt flags.
Note
This function leaves interrupts disabled.

References cpu_irq_disable.

Referenced by ac_disable(), ac_enable(), ac_read_config(), ac_write_config(), adc_disable(), adc_enable(), adc_flush(), adc_get_signed_compare_value(), adc_get_signed_result(), adc_get_unsigned_compare_value(), adc_get_unsigned_result(), adc_read_configuration(), adc_set_callback(), adc_start_conversion(), adc_write_configuration(), adcch_read_configuration(), adcch_write_configuration(), arch_ioport_disable_pin(), arch_ioport_disable_port(), arch_ioport_enable_pin(), arch_ioport_enable_port(), arch_ioport_set_pin_mode(), arch_ioport_set_pin_sense_mode(), arch_ioport_set_port_mode(), arch_ioport_set_port_sense_mode(), dac_disable(), dac_enable(), dac_get_channel_value(), dac_read_configuration(), dac_set_channel_value(), dac_write_configuration(), dma_channel_disable(), dma_channel_enable(), dma_channel_read_config(), dma_channel_reset(), dma_channel_trigger_block_transfer(), dma_channel_write_burst_length(), dma_channel_write_config(), dma_channel_write_destination(), dma_channel_write_repeats(), dma_channel_write_source(), dma_channel_write_transfer_count(), dma_set_double_buffer_mode(), dma_set_priority_mode(), ebi_cs_read_config(), ebi_cs_write_config(), ebi_disable_cs(), ebi_enable_cs(), ebi_sdram_disable_self_refresh(), ebi_sdram_enable_self_refresh(), ebi_sdram_read_config(), ebi_sdram_write_config(), ili9341_send_byte(), osc_disable(), osc_enable_autocalibration(), osc_enable_external(), osc_enable_internal(), pll_disable(), pll_enable(), rtc_get_time(), sleepmgr_lock_mode(), sleepmgr_unlock_mode(), sysclk_disable_module(), sysclk_enable_module(), tc_disable(), tc_enable(), timeout_start_offset(), timeout_stop(), timeout_test_and_clear_expired(), twim_acquire(), win_are_events_pending(), win_pop_front_event(), and win_queue_event().