Ver Mensaje Individual
  #10 (permalink)  
Antiguo 06-04-2007, 17:42:24
Pedro Maicas
 
Mensajes: n/a
Predeterminado Re: Sobre calculos.

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
Responder Con Cita