Autor Tema: Calcular BCD y sacarlo en LCD  (Leído 2412 veces)

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

Desconectado karlosmks

  • PIC10
  • *
  • Mensajes: 4
Calcular BCD y sacarlo en LCD
« en: 26 de Julio de 2006, 09:30:29 »
 :-/ :-/ :-/
Buenas a todos:
el calor empieza a derretirme el cerebro y no consigo resolver lo siguiente: Tengo un pic con puerto serie, por donde recibo unos datos. Y tengo que sacar esos datos en un LCD. El problema es que los datos están en 4 bytes en BCD. Por ejemplo me llega $01, $01, $01, $01. Y esto corresponde al valor decimal 16843009. Como puedo realizar el cálculo????

Salud y gracias anticipadas

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Calcular BCD y sacarlo en LCD
« Respuesta #1 en: 26 de Julio de 2006, 09:37:52 »
¿No podrías declarar el resultado como int32, y asignarle los valores así?

int32 resultado;

resultado = byte1<<24 + byte2<<16 + byte3<<8 + byte4;


Desconectado karlosmks

  • PIC10
  • *
  • Mensajes: 4
Re: Calcular BCD y sacarlo en LCD
« Respuesta #2 en: 26 de Julio de 2006, 09:52:57 »
Lo estoy haciendo con PicBasic, y que yo sepa solo se pueden declarar bit, byte y word. O sea, máximo 16 bits.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Calcular BCD y sacarlo en LCD
« Respuesta #3 en: 26 de Julio de 2006, 12:23:55 »
Ah, no me di cuenta que este foro es de Basic. Pues si no puedes calcular un nº de 32 bits, ¿cómo crees que se puede hacer?

Desconectado karlosmks

  • PIC10
  • *
  • Mensajes: 4
Re: Calcular BCD y sacarlo en LCD
« Respuesta #4 en: 27 de Julio de 2006, 04:19:30 »
Pues no lo tengo claro. Puedo calcular el valor sin demasiados problemas de los 4 primeros digitos (2 bytes):
Si el valor a calcular es $01 $01 $01 $01 cojo los de menor valor y calculo: 1*16^0+0*16^1+1*16^2+0*16^3. Hasta aquí todo va bien, sale 257. Pero a partír de ahí se me va, ya que 16^4=65536 y ese es mi tope de cálculo. Así que el resto de la formula es 1*16^4+0*16^5+1*16^6+0*16^7, que sale 16842752. Pero como calculo esto con solo 16 bits???  :shock:

Desconectado karlosmks

  • PIC10
  • *
  • Mensajes: 4
Re: Calcular BCD y sacarlo en LCD
« Respuesta #5 en: 28 de Julio de 2006, 08:53:52 »
Buenas, tras darle muchas vueltas al tema he visto que mi problema es que necesito hacer cálculos de 32 bits. Alguien me puede decir como se puede hacer esto con PicBasic????
 :? :?