TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ORE en 17 de Mayo de 2006, 15:20:08
-
Hola muy buenas,
Hace unos dias postee una subrutina que realizaba la conversión AD de 12 bits del MAX187. Volviendo a recuperarla ya que tengo que armar mi aplicación, veo que al obtener dos medidas distintas obtengo valores no de acuerdo con la realidad. Por ejemplo: leo una entrada de 200 mV y veo en el display 200.00, en cambio leo un valor de 1,032 V, y veo 1032.00. ¿Puede ser debido a estas líneas?:
float convert_to_volts(long data) {
return ((float)data*2.5/0xFFFF);
}
Tengo mis dudas si es correcto o estoy cometiendo un error. También pido disculpas si mi subrutina crea algún problema a alguien que se haya decidido a usar este magnifico AD, pero veo en diferentes drivers que tiene CCS en conversores de 12 bits similares que usan las mismas instrucciones.
Un saludo,
-
ORE no veo cual es el error.
Si 200mV = 200.00
y 1,032V = 1032mV = 1032.00
Estas viendo un dato para mi correcto. ;)
Saludos
-
Hola Manuix,
Gracias por tu respuesta. Esto quiere decir que lo que estoy retornando son milivoltios, por lo que la subrutina de devolución debería decir:
float convert_to_mili_volts(long data) {
return ((float)data*2.5/0xFFFF);
}
¿Podría solucionar este, no llamarlo error, sino problema de sintaxis dividiendo el valor entre 1000?
¿O no sería políticamente correcto?
Gracias