fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Detectar flags en l...
 
Avisos
Vaciar todo

Detectar flags en los puertos de un pic

5 Respuestas
3 Usuarios
0 Reactions
5,394 Visitas
plapu
Respuestas: 80
Topic starter
(@plapu)
Trusted Member
Registrado: hace 16 años

Hola acabo de soldar los sensores para un seguidor de lineas que cuando esta encima una linea negra me da 0,6 y encima una blanca 4,5. Estoy intentando acoplar los sensores al pic, pero lo programo y no me funciona. Para ir paso a paso estoy intentando que cuando el bit zero del puertoA valga 1 (5V) se encienda el bit zero del puertoC. Ajunto el codigo:

BSF STATUS,RP0
BCF STATUS,RP1

MOVLW b'00000000'
MOVWF TRISC

MOVLW b'00000001'
MOVWF TRISA
LOOP:
BCF STATUS,RP1
BCF STATUS,RP0

BCF STATUS,Z
MOVFW PORTA
XORLW b'00000001'

BTFSS STATUS,Z
BSF PORTC,0

GOTO LOOP
END

A ver si alguien ve donde esta el error

Responder
4 respuestas
juanjo
Respuestas: 451
(@juanjo)
Ardero
Registrado: hace 18 años

Una cosas a tener muy en cuenta es el valor por defecto de los registros depués de hacer un reset o cuando se inicia el micro. Por lo que veo en la mayoría de los casos lo tomáis como que tienen los valores adecuados.

Responder
plapu
Respuestas: 80
Topic starter
(@plapu)
Trusted Member
Registrado: hace 16 años

Asin que tengo que limpiar los puertos con un CLRF PORTA y CLRF PORTC ?¿ De esta forma me aseguro que estan a 0 no?

Responder
jim_17
Respuestas: 21
(@jim_17)
Eminent Member
Registrado: hace 17 años

Te aconsejaría que pusieras un ORG 0x00 al inicio del programa. Esto te lo digo porque cuando inicias el micro siempre salta al vector de reset que es el 0x00, entonces escribe el programa igual pero poniendo arriba org 0x00. Especifica un poco más el micro que vas a utilizar, postea el código asm completo junto con sus includes etc... y también especifica como has conectado los sensores, con resistencias pull-up o pull-down ?

Saludos.

Ahora te dejo la modificación que le haría yo al código.

ORG 0X00 ;VECTOR DE RESET

BSF STATUS,RP0 ;SELECCIONAMOS BANCO 1 PARA CONFIGURAR
BCF STATUS,RP1 ;LOS PINES

MOVLW b'00000000' ;PORTC COMO SALIDAS
MOVWF TRISC

MOVLW b'00000001' ;RA0 COMO ENTRADA, LAS DEMÁS SALIDAS
MOVWF TRISA
LOOP:

BCF STATUS,RP1
BCF STATUS,RP0

BTFSC PORTA,0 ;RA0 = ? SI ES 1, ENCENDEMOS LED
GOTO ENCENDER ;SI ES 0 APAGAMOS
GOTO APAGAR

ENCENDER
BSF PORTC,0
GOTO LOOP

APAGAR
BCF PORTC,0
GOTO LOOP

END

Responder
plapu
Respuestas: 80
Topic starter
(@plapu)
Trusted Member
Registrado: hace 16 años

Cuando dices resistencias de pull-up y pull-down...es necesario poner la resistencia, no se le puede meter directamente 5 voltios a la pata del puertoA bit zero? Si hay que poner una resistencia en el datasheet pone que la maxima intensidad de entrada son unos 250mA o sea que con una resistor de 22 ohm ya tira?

Responder
Compartir: