TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ituarte en 26 de Abril de 2012, 13:01:35

Título: Mostrar decimales con u16
Publicado por: ituarte en 26 de Abril de 2012, 13:01:35
Hola, tengo una variable llamada tempValue del tipo u16 que recoge los datos del ADC y me los muestra en el LCD pero me gustaria que me sacara por la pantalla uno o dos decimales, como puedo hacer??? el codigo es el siguiente:

Código: [Seleccionar]
while(1)
{
ADC1_StartConversion();
while(!(ADC1->CSR & 0x80 ));
temper=ADC1_GetConversionValue();
tempValue=((temper*300)/614)-59.97;
LCD_CLEAR_DISPLAY();

LCD_printstring("Temperature\n");
LCD_2ndROW();
LCD_printf("%u\n",tempValue);
Delay (1500);

}
Título: Re: Mostrar decimales con u16
Publicado por: Suky en 26 de Abril de 2012, 13:42:22
Un entero no tiene decimales, tenes que usar un float (y en el printf %f)
Título: Re: Mostrar decimales con u16
Publicado por: ituarte en 26 de Abril de 2012, 14:07:30
He intentado, pero entonces me deja de funcionar, en el LCD se muestra "Temperature" pero no se ve los grados
Título: Re: Mostrar decimales con u16
Publicado por: Suky en 26 de Abril de 2012, 14:29:55
El compilador soporta %f ? Sino vas a tener que buscar alguna función que cree en string a partir del flotante. En el foro hay utiliza el buscador
Título: Re: Mostrar decimales con u16
Publicado por: ituarte en 26 de Abril de 2012, 14:36:24
Gracias buscare ;)