void LCD_ShowWord(u16 x0,u16 y0,u16 size,u16 num)
{
u16 temp,start=y0;
u16 csize=0,r,d;
switch(size)
{
case 24:
csize=72; break;
case 32:
csize=128; break;
case 48:
csize=288; break;
}
for(r=0;r<csize;r++)
{
if(size==24)
temp=asc2_2424[num][r];
else if(size==32)
temp=asc2_3232[num][r];
else if(size==48)
temp=asc2_4848[num][r];
else return;
for(d=0;d<8;d++)
{
if(temp&0x80) LCD_Fast_DrawPoint(x0,y0,POINT_COLOR);
else LCD_Fast_DrawPoint(x0,y0,BLACK);
temp<<=1;
y0++;
//if(y0>=lcddev.height) return; //超区域了
if((y0-start)==size)
{
y0=start;
x0++;
//if(x0>=lcddev.width)return; //超区域了
//break;
}
}
}
这段代码是我根据显示字符的那段改的,基本都没用动,我想用它来显示几个汉字,出现的结果是三个方块在那里一闪一闪的,扫出来的是一个黑块。
这是什么原因,是扫描的不够快,还是我取字模有问题啊??? 取模设置为顺向阴码逐列式;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
字体大小也得注意下
---------------------------------
单步调试下看看每个点绘制情况就知道程序运行对不对了
---------------------------------
搞定了,原来的for循环中是t定义的是u8.但是我做的汉字库早已经超出了,所以不行,发生了重叠; 谢谢。
---------------------------------
这个是r 改过的,开始改的时候我用的那个函数里面 t定义成了u8.
一周热门 更多>