[求助] TFT LCD驱动程序中的一条语句不理解,请高手讲解

zzbaizhi   2012-2-28 11:21 楼主

//========================================================================
// 函数: void PutChar(unsigned char x,unsigned char y,char a)
// 描述: 写入一个标准字符
// 参数: x X 轴坐标 y Y 轴坐标
// a 要显示的字符在字库中的偏移量
// 返回: 无
// 备注: ASCII 字符可直接输入ASCII 码即可
// 版本:
// 2006/10/15 First version
// 2007/01/11 V1.1
//========================================================================
void PutChar(DOTBYTE x,DOTBYTE y,char a)
{
    DOTBYTE i,j; //数据暂存
    FLASH *p_data;
    LCDBYTE Temp;
    BYTE Index = 0;
    if(Font_type==1)
       p_data = Char_TAB + (a-32)*Font_Wrod;
    else
       p_data = Char_TAB + a*Font_Wrod; //要写字符的首地址
    j = 0;
    while((j ++) < Y_Witch)

        {
          if(y > Dis_Y_MAX) break;
          i = 0;
          while(i < X_Witch)
             {
               if((i&0x07)==0)
                   {
                     Temp = *(p_data+Index);
                      Index++;
                   }

               if((Temp & 0x80) > 0)

                    Writ_Dot ((x+i),y,Char_Color);
              else  if(Font_Cover)

                          Writ_Dot ((x+i),y,Char_BackColor);
              Temp = Temp << 1;
               if((x+i) >= Dis_X_MAX)
                   {
                     Index += (X_Witch-i)>>3;
                     break;
                   }
                i++;
             }
          y ++;

      }

}

这是LCD中写字符函数,相信看过的人都知道,所以其中一些变量我就不解释了,Index变量保存的是针对当前字符字模数据的偏移量,红色的这一条语句,我看了半天也不明白,请高手讲解一下,万分感谢

 

LCD.zip (12.19 KB)
(下载次数: 10, 2012-2-29 14:30 上传)

 

 

[ 本帖最后由 zzbaizhi 于 2012-2-29 14:30 编辑 ]

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复