Except, we are not supposed to gosub outside of our interrupt handlers.
See: http://www.picbasic.co.uk/forum/show...3788#post83788
Does it work for you, or is it acting funny?
Except, we are not supposed to gosub outside of our interrupt handlers.
See: http://www.picbasic.co.uk/forum/show...3788#post83788
Does it work for you, or is it acting funny?
Well, that's true if you jump out of the ISR never to RETURN to it. You can definetely GOSUB "out of" the ISR as long as you don't "wander off" and doesn't RETURN to within the ISR to finally end up at the INT_RETURN.
The above will work just fine as long as mySUB1 and mySUB2 RETURN to within the ISR.Code:myINT: GOSUB mySUB1 GOSUB mySUB2 TOGGLE PortB.0 @ INT_RETURN
With 18F's or 16F1's, you can get away with GOSUBing to other routines from the interrupt handler.
But with 12F's and 16F's, you are limited by a very small Stack (8 levels).
Most PBP statements only use 1 or 2, but a couple of them can use up to 4 levels, which only leaves 4 levels for your program and it's GOSUB's.
When you get an interrupt, the hardware itself uses 1 level.
When the interrupt happens, it could be 2 or 3 gosubs deep already in your main program.
Then using Basic Language statements in the interrupt handler will want some more levels.
If you use another level by gosubing from the handler, then you are really pushing your luck.
It may work fine for some programs, but it could be catastrophic for others.
With 18F's and 16F1's, there are plenty of stack levels to go around. But not with the "little" guys.
DT
So far, she does run... however, i'm having a right mare with the comms hardware setup and the comms handler...(shakes head)
Now that i have 6 18F4550's from crownhill i may revert the program back to using them...
The program does sweet FA, everything is driven from interrupts, their is only the 'automatic' and 'manual' modes that have gosubs and they are correctly returned so i don't think it's over/under runs that are the problem now...
I'll post more info later on, I'm going to take a break for a couple of hours and have a blast on CnC...
Bookmarks