Autor Tema: Comunicación serie entre pics, problema al enviar un palabra (varios caracteres)  (Leído 3658 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
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.

« Última modificación: 24 de Marzo de 2009, 07:15:44 por ra2ven »

Desconectado jansuini

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 566
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

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
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
El papel lo aguanta todo

Desconectado ra2ven

  • PIC10
  • *
  • Mensajes: 29
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

Desconectado jansuini

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 566
Hola:
Para responderte sobre la impedancia ,realmente conecta el pin a 0volt a traves de un mosfet asi que no tendrias impedancia casi
jorge


 

anything