Hi, here is the code I i'm using to test count and asm interruprs with a 16f84a, some var are in sapanish, I hope it's no a problem to understand it, I can't find what is wrong with it.
define osc 20
clear
pulsos var byte
x var word ; display value
num var byte
velocidad var byte
wsave var byte $20 system
ssave var byte bank0 system
psave var byte bank0 system
r0save VAR WORD bank0
r1save VAR WORD bank0
r2save VAR WORD bank0
r3save VAR WORD bank0
fsave var byte bank0 system
rm1save var word bank0
TRISA = %11111111
TRISB = %00000000
goto start
define INTHAND display
start:
option_reg = %00000011
intcon = %10100000
main:
count porta.2,1000,pulsos
x = pulsos
goto main
asm
display
ENDASM
r0save = R0
r1save = R1
r2save = R2
r3save = R3
fsave = fsr
rm1save = RM1
ASM
movwf wsave
swapf STATUS, W
clrf STATUS
movwf ssave
movf PCLATH, W
movwf psave
endasm
num = x dig 0
portb = num
high portb.4
pause 7
low portb.4
num = x dig 1
portb = num
high portb.5
pause 7
low portb.5
num = x dig 2
portb = num
high portb.6
pause 7
low portb.6
TMR0 = 60
INTCON.2 = 0
asm
movf psave, W
movf psave, W
movwf PCLATH
swapf ssave, W
movwf STATUS
swapf wsave, F
swapf wsave, W
endasm
fsr = fsave
R0 = r0save
R1 = r1save
R2 = r2save
R3 = r3save
RM1 = rm1save
asm
retfie
endasm




Bookmarks