Bueno después de jugar al juego de las patas al tajo.
El cero de los cojines me ha mareado lo suyo. Pero bueno al final salió.
Aquí te mando la solución con un ejemplo (los comentarios seguramente saldran por libre):
// LCDfloa2.c: Envio de variables decimales a la LCD y si son <1 que aparezca el 0.
#include <16f876.h> //Este programa si se hace para el 16F84 no cabe.
//El compilador saca el error: fuera de ROM,
//segmento de programa demasiado largo
#use delay(clock=4000000)
#include <lcd2.c>
main()
{
float x,n=1467;
int16 Z;
int y;
char cadena[20];
x=n/1000;
y=(int)x;
Z=(int16)(x*1000); //3 decimales, resultado:1.467
lcd_init(); // Comandos de inicialización del LCD.
lcd_enviar(LCD_COMANDO,LCD_CURSOR_BLINK); // Envía comando al LCD
while(1)
{
if (y>=1)
printf(LCD_PUTC,"x=%.3f",x);
else
{
sprintf(cadena,"0.%lu",Z); //Esto es para sacar el 0.
printf(LCD_PUTC,"%s",cadena);
}
sleep();
}
}
Si hay algo que no entiendas preguntamelo.
Un saludo