goto INITIALIZE
DEFINE INTHAND Int_Vector ' Handler de Interrupcion
;disable
ASM
Int_Vector
MOVWF wsave ; Guardamos el registro W
MOVF STATUS,W
CLRF STATUS ; Guardamos el registro STATUS
MOVWF ssave
MOVF PCLATH,W ; Guardamos el registro PCLATH
MOVWF psave
CLRF PCLATH
ENDASM
;############ INTERRUPT CODE ###############
if INTCON.2 = 1 then ;######## TIMER ########
INTCON.2 = 0 ;Borra la bandera TMR0
TMR0 = 226 ;(226) cada 100us a 20mhz y con 1/16 227
;Hace lo ke kieras
RESUME
endif
Resume
ASM ;****** Fin de Interrupcion ***********
End_Int
CLRF STATUS
MOVF psave,W
MOVWF PCLATH ; Restauramos el registro PCLATH
MOVF ssave,W
MOVWF STATUS ; Restauramos el registro STATUS
SWAPF wsave,F
SWAPF wsave,W ; Restauramos el registro W
RETFIE
ENDASM
;################ REGISTROS ######################
INITIALIZE:
OPTION_REG = %10000011 ;pull-up off ;flanco descendente ; temporizador ;inc flanco ascendente
;Divisor TMR0 ;1/16
INTCON = %10100000 ;Activa interrupcion Global, y TMR0