TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: juanez en 28 de Diciembre de 2006, 16:05:51

Título: Serout2
Publicado por: juanez en 28 de Diciembre de 2006, 16:05:51
Hola quiero enviar el valor leido de un canal del conversor A/D de un 16F870 a traves de serout2 a otro dispositivo o pic.

Consigo la comunicacion sin problemas con otro pic.
El problema es que no se enviar el valor leido del conversor.

Supongamos que el valor leido es el maximo "1023", pues puedo enviar 2 cifras sin problemas:

Si por ejemplo envio "23" llega sin problemas,  pero supongamos que el valor leido esta en una variable X y su valor es 1023.

Si tengo que enviar el valor de x a traves de serout en 2 envios de 2 cifras y x tiene 4 cifras ¿Como lo hago?
Título: Re: Serout2
Publicado por: navaismo en 28 de Diciembre de 2006, 16:50:32
Pues no debe haber problemas  con poner  serout2 pin velocidad [variable]

En variable puedes poner BIN variable si quieres que sea binario como se muestre, DEC si es decimal y muestra tal cual el valor de la variable.
No debe de haber broncas.
 
Título: Re: Serout2
Publicado por: Mario en 28 de Diciembre de 2006, 22:33:14
Creo que esto te servirá:
http://www.microengineeringlabs.com/resources/samples/pbp/ser2mod.bas

Si entiendo bien, no es el problema mandar y/o recibir y desplegar BIN, DEC, HEX, sino el mandar 1023 que no te cabe en un byte, debes hacer una palabra.
Para eso debes mandar el valor bajo y alto de TX (TX.highbyte o TX.1 y TX.lowbyte o TX.0) uno después de otro y que el PIC receptor los acomode como sea pertinente: si mandas primero el alto, recibes primero el alto y lo colocas en el byte alto del receptor (RX.1 o RX.highbyte) y lo mismo con el de menor peso (RX.0 o RX.lowbyte).

Puedes intentarlo, he mandado varios registros de un PIC a otro utilizando el código del ejemplo del enlace.

Espero te sirva.
Título: Re: Serout2
Publicado por: Veguepic en 29 de Diciembre de 2006, 00:48:29
Mi recomendacion es que envies los 8 bits mas significativos, pues los ultimos 2 bits normalmente varian mucho por el ruido y otros factores, siendo mas practico obviarlos.

Yo tambien estuve probando con serout2 y enviaba los datos en una variable del tipo WORD, luego me decidi por lo anterior.

Saludos
Título: Re: Serout2
Publicado por: juanez en 01 de Enero de 2007, 14:56:12
Lo que quiero hacer es lo que comenta mario, mandar el valor de 1023 o el que corresponda, con el envio recepcion no tengo problemas.

Voy a probar con el post de mario haber que tal.

Salu2
Título: Re: Serout2
Publicado por: navaismo en 01 de Enero de 2007, 15:22:45
Pues lo que puso Mario no le veo diferencias a lo que ya se ha comentado en otros temas del seorut2. En fin espero logres enviarlo, en mi caso no he tenido problemas nunca
Título: Re: Serout2
Publicado por: juanez en 01 de Enero de 2007, 18:34:18
Ya esta solucionado.

El problema era que no podia enviar 1023 por ejemplo, podia enviar 10 o 23 o lo que sea pero solo 2 cifras.

La solucion ha sido usar una palabra como comenta mario, y enviar el byte alto y el bajo, y luego recibirlos en el mismo orden.

Salu2