TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: chavifer en 17 de Julio de 2003, 20:33:00

Título: necesito rutina lcd para numeros en coma flotante
Publicado por: chavifer en 17 de Julio de 2003, 20:33:00
Es que la que viene por defecto con el pwc no consigo que funcione correctamente cuando simulo con el proteus.
Os pongo un programa de ejemplo:
int peso;
int altura;
float salud;
peso=70;
altura=175;
salud= (float) (altura / peso);
printf(LCD_PUTC, "La salud es%f", salud);
pues al simularlo con el proteus me sale 2.xxxxx;
¿Sera culpa del driver de lcd?¿o culpa del proteus.?
A ver si alguien me ayuda..
Título: RE: necesito rutina lcd para numeros en coma flotante
Publicado por: lu6vg en 17 de Julio de 2003, 21:14:00
Cual es el error exactamente?. No me queda claro. Subi el codigo completo asi lo pruebo

Saludos

Luis
Título: RE: necesito rutina lcd para numeros en coma flotante
Publicado por: chavifer en 18 de Julio de 2003, 07:20:00
Prueba ese programa con el proteus y mira lo que sale por el lcd.
A mi me sale 2.xxxx
y no se porque sale asi, si es culpa del proteus o de la rutina de lcd.Si ademas tienes ocasion de probarlo fisicamente en un pic pues me seria de mucha ayuda.
Saludos
Título: RE: necesito rutina lcd para numeros en coma flotante
Publicado por: lu6vg en 18 de Julio de 2003, 18:13:00
no salio el adjunto. Ya que esta adjunta el archivo de proteus tambien
Título: RE: necesito rutina lcd para numeros en coma flotante
Publicado por: chavifer en 18 de Julio de 2003, 19:44:00
Te mando el .c el .h y el .dns del proteus.Pruebalo y me cuentas y muchas gracias por todo.
Saludos
Título: RE: necesito rutina lcd para numeros en coma flotante
Publicado por: chavifer en 18 de Julio de 2003, 19:50:00
Me parece que el prueba5.c te va a dar un error por la rutina del lcd.Ahora te pongo el correcto.Yo lo compilo con ccs version 3.094.
Título: RE: necesito rutina lcd para numeros en coma flotante
Publicado por: pocher en 01 de Agosto de 2003, 03:14:00
No te sale bien porque al dividir las dos variables de tipo entero, el resultado es entero (sale 2) y los decimales, aunque luego pases la división a float ya se han perdido. Debes de definir las tres variables (altura, peso y salud) como float.

Te adjunto lo dicho simulado en PROTEUS. He utilizado un trozo de programa que tenía con LCD de 8 bits, para 4 bits lo mismo (en Ejemplos para Simular deje hace algún tiempo la forma de usar LCDs con 4 y 8 bits)

Otra cosa: la definición de variables hazla en el main, no en el while

Un saludo