On 6 Apr 2007 01:09:43 -0700, "jgenicio***gmail.com" <jgenicio***gmail.com> wrote:
>temp_c = (float)((MSB<<8 + LSB) - 65536) * 0.0625;
>
>Es correcto, ya que no me da lectura ninguna. ¿?
Eso es matar moscas a cañonazos, en un micro
sin unidad de coma flotante, sin apenas memoria
de programa ni ram, y sobre todo sin ninguna necesidad,
no deberías usar float, aunque el compilador lo soporte
seguro que te mete ahí un motón de código.
Por otro lado el msb<<8 es sopechoso de que te va a perder
su contenido, como al compilador le de por no convertirlo
a entero (y supuesto un entero de 16 bits, que habría que verlo,
igual el entero es de 8 bits en este caso). Aún con 16 bits,
la operacion -65536 no parece tener mucho sentido, puesto
que con dos bytes nunca vas a tener una lectura 65536,
¿ entonces el 'cero' cual seria ?
Y para colmo, multiplicar por 0.0625 es lo mimso que
dividir por 16, es decir lo mismo que hacer un desplazamiento
de cuatro bits, ... todo bastante absurdo.
Saludos :-) -Pedro-
http://www.maicas.net/
e-mail en
www.maicas.net