【AT-START-F403A测评】六、你好!雅特力
[复制链接]
上次显示字符没显示出来,今天有点时间,进函数单步了一下,原来是背景色和前景色一样了。
for(pos=0;pos<16;pos++)
{
temp=asc2_1608[(u16)num*16+pos]; //μ÷óÃ1608×Öìå
for(t=0;t<8;t++)
{
if(temp&0x01)POINT_COLOR=colortemp;
else POINT_COLOR=BACK_COLOR;
LCD_WR_DATA(POINT_COLOR);
temp>>=1;
x++;
}
x=x0;
y++;
}
而POINT_COLOR和BACK_COLOR根本就没有赋值。
默认是黑的,0x0000再追这两个变量,都是外部变量。
上回思想上有点报怨卖我屏的厂家。现在看来是我错了。
接着看了看屏的函数,有汉字显示,那就显示个“你好!雅特力!”吧。
说干就干,先分析一下函数:
void showhanzi(unsigned int x,unsigned int y,unsigned char index)
{
unsigned char i,j;
unsigned char *temp=hanzi;
Address_set(x,y,x+31,y+31); //éèÖÃÇøóò
temp+=index*128;
for(j=0;j<128;j++)
{
for(i=0;i<8;i++)
{
if((*temp&(1<<i))!=0)
{
LCD_WR_DATA(POINT_COLOR);
}
else
{
LCD_WR_DATA(BACK_COLOR);
}
}
temp++;
}
}
可见是32*32逐行显示的,那就取个模吧:
取模设置如下:
生成的字模得处理一下,总是有中括号在数组里面,全删掉可以编译不报错:
在主程序就显示就行了:
showhanzi(10,100,0);
showhanzi(42,100,1);
showhanzi(42+32,100,2);
showhanzi(42+32*2,100,3);
showhanzi(42+32*3,100,4);
showhanzi(42+32*4,100,5);
showhanzi(42+32*5,100,6);
运行效果如下:
|