Autor Tema: Int2Str para u16  (Leído 1276 veces)

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

Desconectado ituarte

  • PIC12
  • **
  • Mensajes: 69
Int2Str para u16
« en: 06 de Mayo de 2012, 15:48:19 »
Hola estoy buscando una función Int2Str para u16, he encontrado esta:

Código: [Seleccionar]
void Int2Str(char *str, u32 intnum)
{
u32 Div = 1000000000;
int i, j = 0, Status = 0;
for (i = 0; i < 10; i++)
{
str[j++] = (intnum / Div) + 48;
intnum = intnum % Div;
Div /= 10;
if ((str[j-1] == '0') & (Status == 0))
{
str[j] = '\0';
j = 0;
}
else
{
str[j] = '\0';
Status++;
}
}
}

Pero por ejemplo si la temperatura real es 27.5 solo me muestra en el LCD 27 y una ristra de caracteres al azar. puede ser debido a que el valor de la variable me viene dado del ADC en un u16 en lugar de en un u32?

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: Int2Str para u16
« Respuesta #1 en: 06 de Mayo de 2012, 19:25:13 »
Aquí tienes algunas rutinas en ASM para pasar de binario a ASCII:
http://www.piclist.com/techref/microchip/math/radix/index.htm


Saludos.