You got it!
That's what will happen.
And the order they are executed will depend on the order in the INT_LIST.
For instance ...
With the INT_LIST below ..., INT_INT will be the first handler executed, if it's flag is set.
Then it will do TMR0_INT next (if flagged).
If another INT_INT happens while it's in TMR0_INT, then it will wait until TRM1_INT has also finished before it goes back around and handles INT_INT again.
Code:
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler INT_INT, _ToggleLED1, PBP, yes
INT_Handler TMR0_INT, _ToggleLED2, PBP, yes
INT_Handler TMR1_INT, _ClockCount, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
If the INT_INT really can't wait for TMR1_INT then you can add another INT_INT handler in-between so that it won't have to wait.
Code:
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler INT_INT, _ToggleLED1, PBP, yes
INT_Handler TMR0_INT, _ToggleLED2, PBP, yes
INT_Handler INT_INT, _ToggleLED1, PBP, yes
INT_Handler TMR1_INT, _ClockCount, PBP, yes
endm
INT_CREATE ; Creates the interrupt processor
ENDASM
It still calls the same handler for both of them.
hth,
Bookmarks