TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: frape en 17 de Abril de 2007, 16:33:26
-
Hola estoy realizando un proyecto en el cual necesito leer el estado de un pin y necesito ir concatenando estos valores hasta formar un byte completo para su posterior procesamiento, para ello utilizo el siguiente codigo:
PinRX var PORTB.1
n var byte
f var byte
Temp1 var byte
Temp2 var byte
clear
TRISB=%00100010 ' RB1 como entrada
TRISD.0=1
temp1=%11111111
LeerDatos:
if pinrx=0 then
goto bucle
endif
goto leerdatos
bucle:
pauseus 400
for n=0 to 7
temp1.0=PINrx
temp1=temp1<<1
pauseus 825
next n
el problema es que el primer bit que entra se coloca en temp1.0 y no se como desplazarle, los demas si que van desplazandose correctamente pero ocupando la posicion siguiente a la que le corres`ponderia, no se si me explico bien el ejemplo seria este:
necesito obtener el byte 12345678 pero obtengo 23456781 y por mas pruebas que hago no veo como solucionarlo.
Saludos
-
Que tal frape,
El problema es porque estas recorriendo el byte 8 veces y solo deben ser 7, tu rutina del bucle deberia ser esta:
bucle:
pauseus 400
for n=0 to 6
temp1.0=PINrx
temp1=temp1<<1
pauseus 825
next n
-
perdon frape, el mensaje anterior esta incompleto.
Este es le bueno
bucle:
pauseus 400
for n=0 to 6
temp1.0=PINrx
temp1=temp1<<1
pauseus 825
next n
temp1.0=PINrx
Saludos
Elreypic
-
Perdon por la tardanza en responder, muchas gracias por tu ayuda, ha funcionado prefectamente como me indicas.
Saludos.