It's always a good idea to post your code. It's difficult to help otherwise ........
Count uses FSR and RM1. FSR needs to be saved and restored in your ASM blocks. RM1 is a PBP variable and needs to be saved and restored the same way as R0,1,2 and 3.
Code:
fsave var byte bank0 system
rm1 var word bank0
asm
display
movwf wsave ; display rutine
swapf STATUS, W
clrf STATUS
movwf ssave
movf PCLATH, W
movwf psave
movf FSR,w
movwf fsave
endasm
r0save = R0
r1save = R1
r2save = R2
r3save = R3
rm1save = RM1
'blah blah ......
R0 = r0save
R1 = r1save
R2 = r2save
R3 = r3save
RM1 = rm1save
asm
bcf INTCON, 1
movf fsave,w
movwf FSR
movf psave, W
movwf PCLATH
swapf ssave, W
movwf STATUS
swapf wsave, F
swapf wsave, W
retfie
endasm
It's always a good idea to tell wich PIC and compiler you're using.
/Ingvar
Bookmarks