#include <nitro/os.h>
OSIrqMask OS_SetIrqMask( OSIrqMask intr );
intr | The IRQ interrupt cause(s) to set. |
Returns the IRQ interrupt cause parameters from before this function was called. See below for information about causes. The return value is the logical sum of the causes that were formerly set.
Sets the IRQ interrupt causes.
When the IRQ interrupt master enable is enabled with OS_EnableIrq
, only IRQ interrupts corresponding to those enabled with this function will occur. The types of interrupts vary based on both the operating mode (NITRO mode vs TWL mode) and the processor (ARM9 vs ARM7).
Specify the interrupt cause(s) to set using the intr argument. See below for information on the types of interrupts.
// Enable both V-Blank and DMA0 interrupts.
OS_SetIrqMask( OS_IE_V_BLANK | OS_IE_DMA0 );
// IRQ master enable
OS_EnableIrq();
OS_SetIrqMask
is a function that overwrites the IRQ interrupt cause parameters with the specified setting. It is not a function that adds the specified causes. Since some interrupt causes are set by system, do not overwrite settings needlessly. For example, because the tick and alarm features use timer interrupts, the IRQ interrupt cause for the applicable timer must always be enabled.
Use OS_EnableIrqMask
when adding IRQ interrupts to the previous settings.
Operates on one of the I/O registers, IE (Interrupt Enable).
OS_GetIrqMask, OS_EnableIrqMask, OS_DisableIrqMask
Types of Interrupts
2008/05/30 Moved the types of interrupts to a separate page.
2005/03/08 Standardized the Japanese term for "interrupt."
2004/12/08 Added warning about OS_IE_KEY.
2004/11/24 Deleted OS_IE_SIO.
2004/09/01 Changed "subprocessor" to "ARM7" and "between subprocessors" to "between the ARM7 and ARM9."
2004/03/12 Emphasized differences from OS_EnableIrqMask().
2003/12/01 Initial version.
CONFIDENTIAL