Hola. Tengo un problema con la interrupcion por rbo en flanco de bajada. ES un timer para tres tiempos 30s 45s y 60s que se configura con un Jumper .El programa funciona bien si saco las tres lineas que estan con comillas, sino funciona bien un par de veces y se cuelga. Creo que no meti la pata en nada. Si alguien me puede esplicar el problema se lo agradeceria, por que esta escapando de todas mis concluciones. Gracias.
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
#include<p16f84a.inc>
#DEFINE SALIDA PORTA,.2
#DEFINE PULSADOR PORTB,.0 ; Línea donde se conecta el pulsador.
ORG .0
GOTO INICIO
ORG .4
GOTO SERVICIOINTERRUPCION
INICIO BSF STATUS,RP0
movlw b'11011'
movwf TRISA
bsf PULSADOR
movwf TRISB
bcf OPTION_REG,NOT_RBPU ; Se activan las resistencias de Pull-Up del Puerto B.
bcf OPTION_REG,INTEDG ; Interrupción INT activa por flanco de bajada.
bcf STATUS,RP0 ; Acceso banco 0.
movlw b'10010000' ; Habilita las interrupciones INT, RBI y la
movwf INTCON ; general GIE.
BCF SALIDA
PRINCIPAL SLEEP
GOTO PRINCIPAL
SERVICIOINTERRUPCION
;CALL Retardo_20ms ;retardo mayor no anda
;BTFSC PULSADOR
;GOTO PRINCIPAL
BTFSC PORTA,.1
GOTO SEG30
BTFSC PORTA,.3
GOTO SEG45
GOTO SEG60
SEG30 BSF SALIDA
CALL Retardo_20s
CALL Retardo_10s
GOTO FININTERRUPCION
SEG45 BSF SALIDA
CALL Retardo_20s
CALL Retardo_20s
CALL Retardo_5s
GOTO FININTERRUPCION
SEG60 BSF SALIDA
CALL Retardo_20s
CALL Retardo_20s
CALL Retardo_20s
GOTO FININTERRUPCION
FININTERRUPCION
BCF SALIDA ;desactiva rele
bcf INTCON,INTF ; interrupción.
retfie
#INCLUDE<RETARDOS.INC>
end