#89303 - ProblemBaby - Sat Jun 24, 2006 3:11 am
Hi
I think my interrupt service routine isn't correct when it comes to nested interrupts. It looks like this:
I tried to use the one provided my libnds but it seems to handle just the VBLANK with my irqSet, irqInit etc routines. I've looked thorugh the code a few times and can't see anything that is different from my own. Is it something like memory placement that Ive missed from the things in interrupt.c? my table is also Identical with the routine and then a mask, so I cant understand why it just takes care about the vblank (and not a timer that is enabled, for example).
My question is, would it be easy to fix my own routine to make it correct or do you have any ideas why the IntrMain function doesnt works for me?
thanks
I think my interrupt service routine isn't correct when it comes to nested interrupts. It looks like this:
Code: |
u32 i; for (i = 0; i < 25; i++) { if (REG_IF & BIT(i)) { g_Interrupt[i].pFunction(); } } INTERRUPT_WAITFLAGS |= REG_IE & REG_IF; REG_IF |= REG_IE & REG_IF; |
I tried to use the one provided my libnds but it seems to handle just the VBLANK with my irqSet, irqInit etc routines. I've looked thorugh the code a few times and can't see anything that is different from my own. Is it something like memory placement that Ive missed from the things in interrupt.c? my table is also Identical with the routine and then a mask, so I cant understand why it just takes care about the vblank (and not a timer that is enabled, for example).
My question is, would it be easy to fix my own routine to make it correct or do you have any ideas why the IntrMain function doesnt works for me?
thanks