TFTLCD显示负数的讨论

2019-07-21 04:17发布

想让TFTLCD显示负数参考了之前的帖子http://www.openedv.com/thread-812-1-1.html,在测试的时候  定义了 一个数组float k[2]={123,-2};
然后主函数进行调用,现象是正数可以显示,负数就显示的是0000,不明白是为啥?请教一下大家
             调用函数 :     LCD_ShowxNum(84,180,k[1],4,16, 0X80);  //fu     -234
                                  LCD_ShowxNum(84,200,k[0],4,16, 0X80);//zheng  123

显示函数
void LCD_ShowxNum(u16 x,u16 y,s32 num,u8 len,u8 size,u8 mode)
{  

    u8 t,temp,fu=0;
    u8 enshow=0;
    if(num<0)
    {
        fu=1;
         num=-num;
    }
    if(fu)
    {
            LCD_ShowChar(x-(size/2),y,'-',size,0);
//            fu=0;
    }
    for(t=0;t<len;t++)
    {
        temp=(num/LCD_Pow(10,len-t-1))%10;
        if(enshow==0&&t<(len-1))
        {
            if(temp==0)
            {
                if(mode&0X80)LCD_ShowChar(x+(size/2)*t,y,'0',size,mode&0X01);  
                else LCD_ShowChar(x+(size/2)*t,y,' ',size,mode&0X01);  
                 continue;
            }else enshow=1;
              
        }
         LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,mode&0X01);
    }
}
然后主函数进行调用,现象是正数可以显示,负数就显示的是0000,不明白是为啥?请教一下大家
                        LCD_ShowxNum(84,180,k[1],4,16, 0X80);  //fu     -234
                        LCD_ShowxNum(84,200,k[0],4,16, 0X80);//zheng  123


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。