Ok maybe a better way for me to explain is this:
Think about the ISR as a subroutine. As such it MUST be returned from. In the case of ON INTERRUPT, this is the RESUME statement. But in your case you jump past the resume with the GOTO's in the ISR. I don't know if the interrupt get re-enabled, but I don't think so because of this. You have 2 choices IMHO.
1. make all the goto's gosub's in the IF's, then change the GOTO loop in each RELAY action to return.
2 This is my favorite:
Code:
Loop:
HSEROUT stuff
IF Relay > 0 then
If relay = 1 then outr1
If relay = 2 then outr2
If ....
Endif
Then in each outr routine, set relay = 0 before you goto loop.
Last thing, Don't use loop for a label. It is reserved in later releases of PBP.
Bookmarks