??? 08/15/05 12:33 Read: times |
#99416 - This is not a solution Responding to: ???'s previous message |
Jan Waclawek said:
I think I have already seen a solution for this, too - wasn't there a similar problem discussed here a couple of months ago? So I would modify the few lines from my previous post as: clr ea ;disable all interrupt (better maybe mov ie,#0) call RetiSub ;release internal interrupt-in-progress flag call RetiSub ;and again to clear also high-level interrupts ;add more call RetiSub ; if more than 2 interrupt levels are available (e.g. in RD2s) jmp 0 ;restart ;restart contains explicit reset of stack pointer, ; so no other stack housekeeping is needed RetiSub: retiJan Waclawek This is NOT a solution, I have mentioned in one of my previous post that you are trying to return from a subroutine with RETI command, which is impossible and assembler does not accept it. I think push and pop is the best option, as I am not using priorities at the moment so hopefully it would not become an issue. James |