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.
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
No, no lo he probado.
Habría que ver cual ahorra memoria o si es indistinto.
Te indique esta forma, pues es la manera que definen los registros internos de los pic y de ahi saque la idea.
Se me había pasado por alto, seguramente, porque desconocía como trabajan los lenguajes de alto nivel.