Meteorología Fácil

Área técnica. => Programación de microcontroladores. => JAL => Mensaje iniciado por: David Met en Agosto 02, 2012, 07:22:02 PM

Título: Como pasar un WORD a dos BYTE
Publicado por: David Met en Agosto 02, 2012, 07:22:02 PM
La manera de pasar un word a dos byte (o cualquier otro tipo de variable) es haciendo un ARRAY.
Supongamos que tenemos una variable llamado TOTALT (WORD) y otras dos variables más TOTALa y TOTALb (ambas BYTE); y deseamos pasar el valor TOTALT a las dos variables byte; ya que, por ejemplo, debemos enviarla por la USART de 8 bit (*). Como ven, TOTALT no entra en el registro de la USART.

¿Cómo debemos hacer? Definimos un ARRAY de la cantidad de byte a usar. En nuestro caso 2.

var word totalt
var byte total_temp[2] at totalt  -- Acabamos de definir un array de dos byte y está asociada a totalt que es un word.
var byte totala
var byte totalb

Luego recuperamos los valores utilizando el array.

totala = total_temp[1]  -- totala tiene la parte alta de TOTALT
totalb = total_temp[0]  -- totalb tiene la parte baja de TOTALT

(*) Nota: la librería que trae JALv2 para enviar datos por la USART, contempla la opción de enviar un WORD. Lamentablemente, esta opción la descubrí tarde; ya que manejaba por mi cuenta, a la USART y no usando la librería.
Título: Re: Como pasar un WORD a dos BYTE
Publicado por: ruibal69 en Agosto 27, 2013, 10:18:20 AM
David , veo que el tema es antiguo, has probado como lo hace Jalv2 en la librerias.

var word dato
var bit * 8    dato_low    at  dato:0
var bit * 8    cato_high   at  dato:8
Título: Re: Como pasar un WORD a dos BYTE
Publicado por: David Met en Agosto 27, 2013, 11:16:04 AM
No, no lo he probado.
Habría que ver cual ahorra memoria o si es indistinto.
Título: Re: Como pasar un WORD a dos BYTE
Publicado por: ruibal69 en Agosto 27, 2013, 12:59:40 PM
Te indique esta forma, pues es la manera que definen los registros internos de los pic y de ahi saque la idea.
Título: Re: Como pasar un WORD a dos BYTE
Publicado por: David Met en Agosto 28, 2013, 03:54:17 PM
Se me había pasado por alto, seguramente, porque desconocía como trabajan los lenguajes de alto nivel.