See Quick start guide for PMIC driver.
This is a low-level driver implementation for the AVR XMEGA Programmable Multilevel Interrupt Controller.
Modules | |
Related Project(s) | |
In this section you can find all the projects related to the Programmable Multilevel Interrupt Controller. | |
Quick Start Guide(s) | |
In this section you can find a list of all Quick Start guides related to the Programmable Multilevel Interrupt Controller. | |
Enumerations | |
enum | pmic_level { PMIC_LVL_LOW = PMIC_LOLVLEN_bm, PMIC_LVL_MEDIUM = PMIC_MEDLVLEN_bm, PMIC_LVL_HIGH = PMIC_HILVLEN_bm, PMIC_LVL_NMI = PMIC_NMIEX_bp } |
Interrupt level bitmasks. More... | |
enum | pmic_schedule { PMIC_SCH_FIXED_PRIORITY, PMIC_SCH_ROUND_ROBIN, PMIC_NR_OF_SCHEDULES } |
Interrupt scheduling schemes. More... | |
enum | pmic_vector { PMIC_VEC_APPLICATION, PMIC_VEC_BOOT, PMIC_NR_OF_VECTORS } |
Interrupt vector locations. More... | |
Functions | |
static void | pmic_disable_level (enum pmic_level level) |
Disable interrupts with specified level(s). More... | |
static void | pmic_enable_level (enum pmic_level level) |
Enable interrupts with specified level(s). More... | |
static enum pmic_level | pmic_get_enabled_levels (void) |
Get currently enabled level(s) More... | |
static void | pmic_init (void) |
Initialize the PMIC. More... | |
static bool | pmic_level_is_enabled (enum pmic_level level) |
Check if specified interrupt level(s) is enabled. More... | |
static bool | pmic_level_is_executing (enum pmic_level level) |
Check if an interrupt level(s) is currently executing. More... | |
static void | pmic_set_scheduling (enum pmic_schedule schedule) |
Set interrupt scheduling for low-level interrupts. More... | |
static void | pmic_set_vector_location (enum pmic_vector vector) |
Set location of interrupt vectors. More... | |
enum pmic_level |
Interrupt level bitmasks.
enum pmic_schedule |
enum pmic_vector |
|
inlinestatic |
Disable interrupts with specified level(s).
level | Interrupt level(s) to disable. |
References Assert, and PMIC_LVL_NMI.
|
inlinestatic |
Enable interrupts with specified level(s).
level | Interrupt level(s) to enable. |
References Assert, and PMIC_LVL_NMI.
Referenced by main().
|
inlinestatic |
Get currently enabled level(s)
References PMIC_LVL_HIGH, PMIC_LVL_LOW, and PMIC_LVL_MEDIUM.
|
inlinestatic |
Initialize the PMIC.
Enables all interrupt levels, with vectors located in the application section and fixed priority scheduling.
References PMIC_LVL_HIGH, PMIC_LVL_LOW, and PMIC_LVL_MEDIUM.
Referenced by main().
|
inlinestatic |
Check if specified interrupt level(s) is enabled.
level | Interrupt level(s) to check. |
References Assert, and PMIC_LVL_NMI.
|
inlinestatic |
Check if an interrupt level(s) is currently executing.
level | Interrupt level(s) to check. |
|
inlinestatic |
Set interrupt scheduling for low-level interrupts.
schedule | Interrupt scheduling method to set. |
References Assert, PMIC_NR_OF_SCHEDULES, PMIC_SCH_FIXED_PRIORITY, and PMIC_SCH_ROUND_ROBIN.
|
inlinestatic |
Set location of interrupt vectors.
vector | Location to use for interrupt vectors. |
References Assert, ccp_write_io(), pll_config::ctrl, PMIC_NR_OF_VECTORS, PMIC_VEC_APPLICATION, and PMIC_VEC_BOOT.