Discuz! Board

标题: 液晶显示改字的大小遇到问题,求助啊!!! [打印本页]

作者: 低调灬你和我    时间: 2015-11-17 23:35
标题: 液晶显示改字的大小遇到问题,求助啊!!!
uint32_t mypow(uint8_t m,uint8_t n)
{
uint32_t result=1;  
while(n--)
          result*=m;   
return result;
}   
/**********************************************/
/* 函数功能:显示数字                         */
/* 入口参数:x,y :起点坐标                 */
/*           len :数字的位数      */
/*           num:数值(0~4294967295);       */
/**********************************************/
void LCD_ShowNum(uint8_t x,uint16_t y,uint32_t num,uint8_t len)
{         
uint8_t t,temp;
uint8_t enshow=0;   // 此变量用来去掉最高位的0
      
for(t=0;t<len;t++)
{
  temp=(num/mypow(10,len-t-1))%10;
  if(enshow==0&&t<(len-1))
  {
   if(temp==0)
   {
    LCD_ShowChar(x+32*t,y,' ');
    continue;
   }else enshow=1;
     
  }
   LCD_ShowChar(x+32*t,y,temp+'0');
}
}
/**********************************************/
/* 函数功能:显示8*16点阵英文字符             */
/* 入口参数:x,y :起点坐标                 */
/*           num:字母或符号                */
/* 注    意:x,y的取值要在240到320范围内      */
/**********************************************/
void LCD_ShowChar(uint16_t x,uint16_t y,uint16_t num)
{
    uint8_t temp;
    uint8_t pos,t;
      
    LCD_WR_REG_DATA(0x0020,x);//设置X坐标位置
    LCD_WR_REG_DATA(0x0021,y);//设置Y坐标位置
  /*开辟显存区域*/
LCD_XYRAM(x,y,x+31,y+63); // 设置GRAM坐标
    LCD_WR_REG(0x0022);     //指向RAM寄存器,准备写数据到RAM
  
num=num-' ';//得到偏移后的值
for(pos=0;pos<256;pos++)
{
     temp=ascii_16[num][pos];
     for(t=0;t<8;t++)
     {                 
         if(temp&0x80)
                  LCD_WR_DATA(POINT_COLOR);
         else
                  LCD_WR_DATA(BACK_COLOR);   
         temp<<=1;
     }
}
/* 恢复显存显示区域240*320 */
LCD_XYRAM(0x0000 ,0x0000 ,0x00EF ,0X013F); // 恢复GRAM整屏显示
return;
}

我想问temp等于多少?
我将原程序的8*16的字改成32*64的,一位数字可以显示,我想显示两位数却显示不出来?只能显示其中的一位,不知道是哪里的问题,想了两天都没找出来,所以求神指点啊!谢谢了!




作者: 低调灬你和我    时间: 2015-11-18 15:53
论坛不搞了吗?!怎么没人呢?!
作者: admin    时间: 2015-11-19 17:40
低调灬你和我 发表于 2015-11-18 15:53
论坛不搞了吗?!怎么没人呢?!

我们用的例子是字库调用,你要变字库的大小了
作者: 低调灬你和我    时间: 2015-11-19 20:44
admin 发表于 2015-11-19 17:40
我们用的例子是字库调用,你要变字库的大小了

能具体点吗?我字库修改过了,1位数是可以显示的,问题是想要显示两位数时屏上只显示一位数,不明白是为什么?想了好久了,那个temp等于多少啊?
作者: 低调灬你和我    时间: 2015-11-21 11:17
低调灬你和我 发表于 2015-11-19 20:44
能具体点吗?我字库修改过了,1位数是可以显示的,问题是想要显示两位数时屏上只显示一位数,不明白是为 ...

高手在哪里啊?!
作者: 低调灬你和我    时间: 2015-11-22 13:26
低调灬你和我 发表于 2015-11-21 11:17
高手在哪里啊?!

我来说一说问题所在把,今天休息的好,状态好,又花了一个半小时的时间,把问题解决了,上面贴的结构没有问题,只有一个变量超出了范围,重新定义一下就可以了。。。。。。。。。。。。。。。。。。困惑了几天的问题今天终于解决了!




欢迎光临 Discuz! Board (http://qfv8.com/) Powered by Discuz! X3