;INTERRUPCION.INC
INTERRUPCION
;{;
	CALL SALVAR_ENTORNO
	GOTO INTERRUPCION_T1 	
;};

SALVAR_ENTORNO
;{;
	MOVWF    W_TEMP           ;Copy W to TEMP register
	SWAPF    STATUS, W         ;Swap status to be saved into W 
	CLRF     STATUS           ;bank 0, regardless of current bank, Clears IRP,RP1,RP0
	MOVWF    STATUS_TEMP      ;Save status to bank zero STATUS_TEMP register
	MOVF     PCLATH, W      ;Only required if using page 1
	MOVWF    PCLATH_TEMP      ;Save PCLATH into W
	CLRF     PCLATH           ;Page zero, regardless of current page
;};
	RETURN

INTERRUPCION_T1
;{;
	;BANCO_0
	BCF	STATUS,RP0
		BTFSC	PORTB,3
		GOTO	APAGAR_LED	
PRENDER_LED
		BSF		PORTB,3				;PRENDE EL LED EN RB3
		CALL	CONFIGURA_TIMER_1	;CONFIGURA EL TIMER 1
		GOTO	RESTAURAR_ENTORNO	;VE A RESTAURAR EL ENTORNO
APAGAR_LED
		BCF		PORTB,3				;APAGA EL LED EN RB3
		CALL	CONFIGURA_TIMER_1	;CONFIGURA EL TIMER 1
		GOTO	RESTAURAR_ENTORNO	;VE A RESTAURAR EL ENTORNO

;};

RESTAURAR_ENTORNO
;{;
		MOVF     PCLATH_TEMP, W  ;Restore PCLATH
		MOVWF    PCLATH          ;Move W into PCLATH
		SWAPF    STATUS_TEMP, W  ;Swap STATUS_TEMP register into W 
                            	 ;(sets bank to original state)
		MOVWF    STATUS          ;Move W into STATUS register
		SWAPF    W_TEMP, F 		 ;Swap W_TEMP
		SWAPF    W_TEMP, W       ;Swap W_TEMP into W
;};
	RETFIE


	
