高中生
最后登录1970-1-1
在线时间 小时
注册时间2015-5-11
|
昨天根据火哥的液晶显示整数写了液晶显示浮点数程序如下:
void LCD_DisFloatNum(uint16_t x, uint16_t y, float num, uint16_t color)
{
uint8_t n = 0;
uint32_t length = 0;
float temp = 0;
if (num != (int)num)
{
num *=10;
n++;
}
temp = num;
if( temp == 0 )
{
LCD_DispChar(x, y, '0', color);
return;
}
while( temp )
{// μÃμ½numμÄ3¤¶è
temp /= 10;
length ++;
}
if (n>0) length++;
while( num )
{
if (n>0)
{
/* ÏÔê¾D¡êy2¿·Ö */
LCD_DispChar((x+STR_WIDTH*(length--)-STR_WIDTH), y, ((int)num%10)+'0', color);
num /= 10;
n--;
}
/*ÏÔê¾D¡êyμã*/
else if(n==0)
{
LCD_DispChar((x+STR_WIDTH*(length--)-STR_WIDTH), y, '.', color);
n--;
}
/*ÏÔê¾Õûêy*/
else
{
LCD_DispChar((x+STR_WIDTH*(length--)-STR_WIDTH), y, ((int)num%10)+'0', color);
num /= 10;
n--;
}
}
}
仿照LCD_DisNum函数写的,但是出来的结果不正确,可能是我C语言没有学好。各位帮忙看看有什么错误,谢谢!
|
|