Off the top of my head, and maybe to give you a head start, and I haven't looked thru the code entirely, TMR0 interrupts happen a lot more often than TMR1. Maybe your int routine kicks out without checking TMR1 before it kicks out. Also, when the int routine does kick out, TMR0 might have kick over again, another int for TMR0, but TMR1 doesn't get hit.
Before you kick out of the TMR0 routine, go back and check your INT bits again. TMR0 might not be there, but TMR1 might. And you need a loop to run in the AFTERINT portion. Just a '10 goto 10' type thing will suffice.
And again...I'll look a bit harder at your code and see if I can spot anything obvious...or not...
Bookmarks