nds interrupt support.
More...
#define IRQ_TIMER |
( |
|
n | ) |
(1 << ((n) + 3)) |
returns the mask for a given timer.
- Parameters
-
- Returns
- the bitmask.
#define REG_IE (*(vuint32*)0x04000210) |
Interrupt Enable Register.
This is the activation mask for the internal interrupts. Unless the corresponding bit is set, the IRQ will be masked out.
#define REG_IF (*(vuint32*)0x04000214) |
Interrupt Flag Register.
Since there is only one hardware interrupt vector, the IF register contains flags to indicate when a particular of interrupt has occured. To acknowledge processing interrupts, set IF to the value of the interrupt handled.
#define REG_IME (*(vuint32*)0x04000208) |
Interrupt Master Enable Register.
When bit 0 is clear, all interrupts are masked. When it is 1, interrupts will occur if not masked out in REG_IE.
values allowed for REG_IME
Enumerator |
---|
IME_DISABLE |
Disable all interrupts.
|
IME_ENABLE |
Enable all interrupts not masked out in REG_IE
|
values allowed for REG_IE and REG_IF
Enumerator |
---|
IRQ_VBLANK |
vertical blank interrupt mask
|
IRQ_HBLANK |
horizontal blank interrupt mask
|
IRQ_VCOUNT |
vcount match interrupt mask
|
IRQ_TIMER0 |
timer 0 interrupt mask
|
IRQ_TIMER1 |
timer 1 interrupt mask
|
IRQ_TIMER2 |
timer 2 interrupt mask
|
IRQ_TIMER3 |
timer 3 interrupt mask
|
IRQ_NETWORK |
serial interrupt mask
|
IRQ_DMA0 |
DMA 0 interrupt mask
|
IRQ_DMA1 |
DMA 1 interrupt mask
|
IRQ_DMA2 |
DMA 2 interrupt mask
|
IRQ_DMA3 |
DMA 3 interrupt mask
|
IRQ_KEYS |
Keypad interrupt mask
|
IRQ_CART |
GBA cartridge interrupt mask
|
IRQ_IPC_SYNC |
IPC sync interrupt mask
|
IRQ_FIFO_EMPTY |
Send FIFO empty interrupt mask
|
IRQ_FIFO_NOT_EMPTY |
Receive FIFO not empty interrupt mask
|
IRQ_CARD |
interrupt mask DS Card Slot
|
IRQ_CARD_LINE |
interrupt mask
|
IRQ_GEOMETRY_FIFO |
geometry FIFO interrupt mask
|
IRQ_LID |
interrupt mask DS hinge
|
IRQ_SPI |
SPI interrupt mask
|
IRQ_WIFI |
WIFI interrupt mask (ARM7)
|
IRQ_ALL |
'mask' for all interrupt
|
values allowed for REG_AUXIE and REG_AUXIF
Enumerator |
---|
IRQ_I2C |
I2C interrupt mask (DSi ARM7)
|
IRQ_SDMMC |
Sdmmc interrupt mask (DSi ARM7)
|
remove the handler associated with the interrupt mask irq.
- Parameters
-
irq | Mask associated with the interrupt. |
Prevent the given interrupt from occuring.
- Parameters
-
irq | The set of interrupt masks to disable. |
- Note
- Specify multiple interrupts to disable by ORing several IRQ_MASKS.
Allow the given interrupt to occur.
- Parameters
-
irq | The set of interrupt masks to enable. |
- Note
- Specify multiple interrupts to enable by ORing several IRQ_MASKS.
Initialise the libnds interrupt system.
This function is called internally (prior to main()) to set up irqs on the ARM9. It must be called on the ARM7 prior to installing irq handlers.
irqInitHandler |
( |
VoidFn |
handler | ) |
|
Install a user interrupt dispatcher.
This function installs the main interrupt function, all interrupts are serviced through this routine. For most purposes the libnds interrupt dispacther should be used in preference to user code unless you know exactly what you're doing.
- Parameters
-
handler | Address of the function to use as an interrupt dispatcher |
- Note
- the function must be ARM code
Add a handler for the given interrupt mask.
Specify the handler to use for the given interrupt. This only works with the default interrupt handler, do not mix the use of this routine with a user-installed IRQ handler.
- Parameters
-
irq | Mask associated with the interrupt. |
handler | Address of the function to use as an interrupt service routine |
- Note
- When any handler specifies using IRQ_VBLANK or IRQ_HBLANK, DISP_SR is automatically updated to include the corresponding DISP_VBLANK_IRQ or DISP_HBLANK_IRQ.
- Warning
- Only one IRQ_MASK can be specified with this function.
set callback for DSi Powerbutton press
- Parameters
-
CB | function to call when power button pressed |
- Returns
- the previously set callback
wait for interrupt(s) to occur
- Parameters
-
waitForSet | 0: Return if the interrupt has already occured 1: Wait until the interrupt has been set since the call |
flags | interrupt mask to wait for |
swiWaitForVBlank |
( |
void |
| ) |
|
Wait for vblank interrupt.
Waits for a vertical blank interrupt
- Note
- Identical to calling swiIntrWait(1, 1)