OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11265|回复: 6

问:TFTLCD显示屏程序不能显示负数?

[复制链接]

1

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2011-1-21
在线时间
43 小时
发表于 2011-5-30 10:42:51 | 显示全部楼层 |阅读模式

原子老大的TFTLCD显示屏程序不能显示负数?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

248

帖子

2

精华

高级会员

Rank: 4

积分
842
金钱
842
注册时间
2012-2-8
在线时间
19 小时
发表于 2012-7-11 16:01:00 | 显示全部楼层
我改了一个,可以显示,不知妥否
红色表示改过的地方,用原子的例子修改额 
void LCD_ShowNum(u16 x,u16 y,s32 num,u8 len,u8 size)
{          
 u8 t,temp,fu = 0;
 u8 enshow=0;
 if(num<0){
  num = - num;
  fu = 1 ;
 }        
 for(t=0;t<len;t++)
 {
  temp=(num/mypow(10,len-t-1))%10;
  if(enshow==0&&t<(len-1))
  {
   if(temp==0)
   {
    if(fu){
     LCD_ShowChar(x+(size/2)*t,y,'-',size,0);
     fu = 0;
    }
    else LCD_ShowChar(x+(size/2)*t,y,' ',size,0);
    continue;
   }else enshow=1;
    
  }
   LCD_ShowChar(x+(size/2)*t,y,temp+'0',size,0);
 }
}
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-5-30 10:51:32 | 显示全部楼层
是的.
这个你自己改写一下,不难的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
454
金钱
454
注册时间
2016-4-22
在线时间
82 小时
发表于 2016-8-13 12:08:48 | 显示全部楼层
寒寒 发表于 2012-7-11 16:01
我改了一个,可以显示,不知妥否
红色表示改过的地方,用原子的例子修改额&nbsp;
void LCD_ShowNum(u16 x ...

我试了一下你写的,只能显示一位数,两位数就不行了,我照你思路改了一下,现在可以显示任意位数了。
void LCD_ShowNum(u16 x,u16 y,s32 num,u8 len,u8 size)
{                
        u8 t,temp,fu = 0;
        u8 enshow=0;       

  if(num<0)
                {
                                num = - num;
                                fu = 1 ;
     }  
   if(fu)
                 {
        LCD_ShowChar(x-(size/2),y,'-',size,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)
                        {
                                LCD_ShowChar(x+(size/2)*t,y,' ',size,0);
                                continue;
                        }else enshow=1;
                          
                }
                 LCD_ShowChar(x+(size/2)*(t+1),y,temp+'0',size,0);
        }
}
回复 支持 反对

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2016-5-3
在线时间
42 小时
发表于 2017-1-7 22:08:45 | 显示全部楼层
拜读一下。自己太懒,现在总是看现成的,慢慢学习吧。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2021-11-7
在线时间
13 小时
发表于 2023-1-21 02:43:52 | 显示全部楼层
Alter 发表于 2016-8-13 12:08
我试了一下你写的,只能显示一位数,两位数就不行了,我照你思路改了一下,现在可以显示任意位数了。
vo ...

好像不行啊
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2023-10-8
在线时间
1 小时
发表于 2024-1-26 21:40:03 | 显示全部楼层
寒寒 发表于 2012-7-11 16:01
我改了一个,可以显示,不知妥否
红色表示改过的地方,用原子的例子修改额&nbsp;
void LCD_ShowNum(u16 x ...

可以用!!!谢谢大佬
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 06:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表