Hola a todos, pues resulta que me hace todo tal y como indica el programa, osea 1º se queda en intermitencia rapida infinitamente , (tengo conectado un led a la patita 2 del portC), y hasta que pulso el interruptor asociado al bit 2 del puerto A.
;;; CLK 4 MHz
w EQU 0h
f EQU 1h
LIST P=16F1503
INCLUDE <P16F1503.INC>
;;;;; 4 Mhz
CONT EQU 20H
CONTMAX EQU 21H
CONTMIN EQU 23H
RET1 EQU 25H
RET2 EQU 26H
RET3 EQU 27H
INDI EQU 28H
ORG 00H
GOTO INICIALIZACION
ORG 04H
GOTO ISR
;;;;;;; INICIALIZACION PORT C
;;;;;;;; Y PORTA
INICIALIZACION NOP
BANKSEL OSCCON ;; RELOJ A 4MHZ
MOVLW 6AH
MOVWF OSCCON
BANKSEL PORTA
CLRF PORTA
BANKSEL LATA
CLRF LATA
BANKSEL ANSELA ; Puerto A
CLRF ANSELA
BANKSEL TRISA
MOVLW 0Ch
MOVWF TRISA
BANKSEL PORTC
CLRF PORTC
BANKSEL LATC
CLRF LATC
BANKSEL ANSELC ; Puerto C SIN RES. POL.
CLRF ANSELC
BANKSEL TRISC
MOVLW 02h
MOVWF TRISC
banksel OPTION_REG
CLRF OPTION_REG
movlw 0x07
movwf OPTION_REG
BANKSEL WPUA
MOVLW 0Ch
MOVWF WPUA ;ACTIVADA, BIT 2, 3
BANKSEL INTCON ; Rut. servicio interrupciones
CLRF INTCON
MOVLW 0X88
MOVWF INTCON ;PONER A 1 GIE e IOCIE
BANKSEL IOCAN
CLRF IOCAN
BSF IOCAN,2 ; a 1 IOCAN2
BANKSEL PORTC
INT.RAPIDA NOP
BSF PORTC,2
CALL DEMORA406 ;;; RUTINA INTERMITENCIA
BCF PORTC,2 ;;;;; RAPIDA
CALL DEMORA406
GOTO INT.RAPIDA
ISR BSF PORTC,2
CALL DEMORA406 ;;; RUTINA INTERMITENCIA
CALL DEMORA406 ;;; LENTA
CALL DEMORA406
BCF PORTC,2
CALL DEMORA406
CALL DEMORA406
CALL DEMORA406
BSF PORTC,2
CALL DEMORA406
CALL DEMORA406
CALL DEMORA406
BCF PORTC,2
RETORNAR NOP
BANKSEL INTCON ; Rut. servicio interrupciones
MOVLW 0X08
MOVWF INTCON ;PONER A 1 IOCIE
BANKSEL IOCAN
BSF IOCAN,2 ; a 1 IOCAN2
BANKSEL IOCAF
BCF IOCAF,2 ; BORRA FLAG
RETFIE
DEMORA406 MOVLW 10h ; CARGA VARIABLES DEMORA
MOVWF RET1
MOVLW 0h
MOVWF RET2
MOVLW 03H
MOVWF RET3
DEC2 DECFSZ RET2 ; RETARDO DE 406 ms
GOTO DEC2
DECFSZ RET1 ;
GOTO DEC2
DECFSZ RET3 ; 3 BUCLES
GOTO DEC2
RETURN
FIN NOP
END
En ese momento, se genera la interrupción , y entra en la rutina de interrupciones ISR, y hace la intermitencia lenta, pero no vuelve a la rutina de int. rapida, sino que, hace el 1,2seg ON, 1,2seg. OFF, 1,2 seg. ON, y se queda apagado.
La verdad no se que me falta poner para que retorne correctamente a la rapida.
Muchas gracias
un saludo