Autor Tema: Mostrar decimales con u16  (Leído 1239 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ituarte

  • PIC12
  • **
  • Mensajes: 69
Mostrar decimales con u16
« 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);

}

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Mostrar decimales con u16
« Respuesta #1 en: 26 de Abril de 2012, 13:42:22 »
Un entero no tiene decimales, tenes que usar un float (y en el printf %f)
No contesto mensajes privados, las consultas en el foro

Desconectado ituarte

  • PIC12
  • **
  • Mensajes: 69
Re: Mostrar decimales con u16
« Respuesta #2 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

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Mostrar decimales con u16
« Respuesta #3 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
No contesto mensajes privados, las consultas en el foro

Desconectado ituarte

  • PIC12
  • **
  • Mensajes: 69
Re: Mostrar decimales con u16
« Respuesta #4 en: 26 de Abril de 2012, 14:36:24 »
Gracias buscare ;)


 

anything