Hola,
Estoy realizando un trabajo con el pic16f877 donde mi idea era usar el timer cero como temporizador para ir cambiando de estados. He echo un programa chorras para irme familiarizando con el timer pero no consigo q funcione como quiero.
La idea es que el siguiente programa encienda y apague un led conectado al bit 0 de portc cada vez q el timer 0 desborde:
org 0
goto inicio
org 0x04
goto rs_interr
inicio
CLRF STATUS
CALL conf_interr
CALL conf_portc
CALL inicia_timer
sleep
;---------------------------
conf_interr
BSF INTCON,T0IE; HABILITAMOS INTERRUPICONES TIMER0
BSF INTCON,GIE; HABILITAMOS INTERRUPCIONES GLOBALES
RETURN
;--------------------
conf_portc
BSF STATUS,RP0
BCF TRISC,0; portc 0 COMO SALIDA
BCF STATUS,RP0
RETURN
;------------------
inicia_timer
MOVLW 0x00
MOVWF TMR0; VALOR INICIAL DE TMR0
BSF STATUS,RP0;
MOVLW 0X07
MOVWF OPTION_REG
BCF STATUS,RP0
RETURN
;-----------------------
rs_interr
BCF INTCON,T0IF ;LIMPIAMOS BANDERA
btfss PORTC,0
goto a_uno
BCF PORTC,0
goto salir_rutina
a_uno
BSF PORTC,0
salir_rutina
call inicia_timer
RETFIE
end
nunca entra en la rutina de servicio a la interrupcion, ¿alguien ve algun problema?.
GRACIAS