On Interrupt 'desactiva las interrupciones
Save System 'Guarda los valores del sistema
'*****************************base de tiempos********************************************
If PIR1.TMR1IF = 1 Then 'comprueba que la interrupcion la proboco el timer1
TMR1H = 0xf8 'recarga el contador del timer1 para que desborde pasado 1mSeg, byte alto
TMR1L = 0x2f 'recarga el contador del timer1 para que desborde pasado 1mSeg, byte bajo
timer_base = timer_base + 1 'base patron
timer_1ms = timer_1ms + 1 'contador para control del timer_1ms
If timer1_ms < timer1_ms_tiempo Then timer1_ms = timer1_ms + 1 'contador para control del timer1_ms
If timer2_ms < timer2_ms_tiempo Then timer2_ms = timer2_ms + 1 'contador para control del timer2_ms
If timer3_ms < timer3_ms_tiempo Then timer3_ms = timer3_ms + 1 'contador para control del timer3_ms
If timer_base >= timer_base_tiempo Then 'usa la base patron para retrazar la rutina 100mSeg.
If timer1_100ms < timer1_100ms_tiempo Then timer1_100ms = timer1_100ms + 1 'contador para control...
If timer2_100ms < timer2_100ms_tiempo Then timer2_100ms = timer2_100ms + 1 'contador para control...
If timer3_100ms < timer3_100ms_tiempo Then timer3_100ms = timer3_100ms + 1 'contador para control...
timer_base = 0 'reset a la base timer
Endif
PIR1.TMR1IF = 0 'borra el bit de salto del timer1
Endif
'*****************************BUFER PUERTO SERIE****************************************
If PIR1.RCIF = 1 Then 'comprueba que esta la interrupcion activa del modulo USART
If uart_imagen(uart) = 0 Then 'comprueba que la posicion esta vacia
uart_imagen(uart) = 1 'indica que hay dato en el bufer de entrada
bufer = 1 'indica que el bufer tine datos
Hserget uart_bufer(uart) 'carga el dato en el bufer
uart = uart + 1 'indica cual sera la posicion siguiente del bufer
If uart >= n_uart Then uart = 0 'comprueba el final del bufer y lo inicializa
Else
Hserget uart_bufer(n_uart) 'descarga la uart para que no se bloquee porque el bufer de entrada esta lleno
Endif
PIR1.RCIF = 0 'borra el bit de salto del Rx, esto ya lo hace de forma automatica Hserget
Endif
Resume 'activa las interrupciones y retorna al curso normal del programa antes del salto