Que pasa con el TRISB. PORTB,3

#1
16F628A inhibo los comparadores al inicio

estoy con un programa y cuando sucede un determinado evento (PORTB,0 =1) el programa se va a su rutina de titilar que es la siguiente
:

TITILAR

MOVF TRISB,0
MOVWF ARCHIVO ; Guardo el estado para que al salir sea el mismo
MOVF TRISA,0
MOVWF ARCHIVA ; Guardo el estado para que al salir sea el mismo

RUTIN

CLRF PORTB
CLRF PORTA
CALL DEMORA
BSF PORTB,2
BSF PORTB,5
BSF PORTA,0
CALL DEMORA
BCF PORTB,2
BCF PORTB,5
BCF PORTA,0
BTFSC PORTB,0
GOTO RUTIN
MOVF ARCHIVO,0
MOVWF TRISB
MOVF ARCHIVA,0
MOVWF TRISA
RETURN

el tema es que al titilar, el bit3 del puertoB se queda clavado. se encuentra encendido
y no se como eliminarlo. si a alguien se le ocurre alguna idea, bienagradecido será.

con el 16F84A anda perfecto.
 
#2
si borro el ccp1

cuando salgo de la rutina TITILAR no me guarda los estados del purtoB, es como que lo borra con la instruccion:

CLRF CCP1CON
 
#3
Repasa el programa.

MOVF TRISB,0
MOVWF ARCHIVO ; Guardo el estado para que al salir sea el mismo
MOVF TRISA,0
MOVWF ARCHIVA ; Guardo el estado para que al salir sea el mismo

¿En que banco se encuentra? Eso pa empezar.

Para poder ayudarte, o intentarlo ,es necesario que pongas el programa enterito. De esa forma no hay que preguntarse nada.

Saludos
 
#4
Hola tu error es que al apagar los LED no llamas a la subrutina de demora, entonces tienes que llamarala y listo te debería funcionar.

Epero que la rta te ayude y te sirva para arreglar tu programa.

Si entendí mal tu programa colocalo completo y asi te podremos ayudar mejor.

SUERTE
 
#7
El nombre dijo:
Así de pronto observo un desorden descomunal.
Podrias mejorarlo y reenviar y de esa forma facilitar la labor de alguno de nosotros

Gracias
a que te referis con el desorden que observas? el formato en que lo abriste o el programa en si?
te comento que cada uno tiene su forma de programar y quizas la mia no sea la correcta, pero por eso es que estoy pidiendo ayuda. desde ya muchisimas gracias por tu observacion
 
#8
El hecho de que cada uno tenga su forma de programar no da derecho ha tener semejante desorden hay que seguir ciertas normas de estética, creeme eso te ayudará a encontrar más fail el error, y más si trabajas con assembler.

Organiza las intrucciones una por fila y te irá mejor.

Es solo un consejo no lo tomes a mal.

Arreglalo y ponlo de nuevo.
 
#9
BAJOFE abrelo a ver como lo visualizas. De la forma que lo has subido hay que perder el tiempo arregladolo. Lo tienes que tener correctamente escrito ya que en el priemer post lo pegas correctamente.
Como doce el compañero picmind "repegalo bien"
 
Arriba