TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: ra2ven en 24 de Marzo de 2009, 06:49:59
-
Hola, estoy intentando enviar una palabra de más de una letra entre dos pics por comunicacion serie y me esta dando problemas.
Si envío una letra sola funciona bien pero si envio por ejemplo "palabra" el pic de recepcion va cogiendo las letras de "palabra" una por una y no las une.
En el pic de transmisión utilizo la siguiente instrucción: serout portb.0,T2400,["palabra"]
En el pic de recepción: serin portb.0,T2400,entrada
lcd para el pic de recepción: lcdout $fe,1,entrada
Al mostrar los datos enviados en el lcd aparece: "p" "a" "l" "a" "b" "r " "a" una letra detras de otra a toda velocidad en la misma posición y no aparece entera en un renglón del lcd que es lo que quiero.
Por otra parte he visto que el PBP da error de compilación si pongo un suceso (por ejemplo con if...then) condicionado a recibir una palabra de más de una letra desde el pic transmisor, lo cual me ha estrañado. Es como si PBP no trabajara con grupos de caracteres.
Si alguien tiene alguna idea será bienvenida. Un saludo.
-
Hola:
Realmente cada letra de "palabra" está formada por un caracter de 8 bit ,en el transmisor lo que hace es transmitir secuencialmente cada caracter ,en el receptor vos recibis sobre una variable de 8 bits cada caracter ,pero siempre sobre la misma variable ,que luego de recibida escribis el lcd y retornas a recibir el proximo caracter ,esta es la razon que te sale secuencialmente .
Jorge
-
Hola.
Podrias probar guardar primero el string palabra en un array y luego visualizarlo como string en la LCD. La lógica es la misma, se guarda caracter a caracter, pero la velocidad a la que la muestra es mayor.
Saludos
-
Hola, lo del array ya lo habia probado con la función SERIN2 lo que pasa es que para recibir un array con STR te obliga a conocer el tamaño del mismo de antemano y por lo tanto hay que programar rutinas distintas para cada tamaño de palabra, aun así es la unica solución que encontre.
Por otra parte tengo una duda tonta de novato, ¿cuando pones en un pic un pin de salida a 0, en tu programa, este queda internamente conectado a la tierra general del pic o existe impedancia entre el pin "a cero" y la tierra?
Un saludo
-
Hola:
Para responderte sobre la impedancia ,realmente conecta el pin a 0volt a traves de un mosfet asi que no tendrias impedancia casi
jorge