研究生
最后登录1970-1-1
在线时间 小时
注册时间2014-8-15
|
本帖最后由 地球依然在转 于 2015-3-27 22:28 编辑
程序如下(加蓝色部分):程序在一开头己经开辟了一个8*16的显示区域,为什么下面每一行还要开辟显示区域?
/******************************************************
* 函数名::LCD_Char_O
* 描述:在指定位置悬浮显示指定字符。
*输入 : X
Y
acsii
Color
void LCD_Char_O(u16 x, u16 y, u8 acsii,u16 Color)
{
#define MAX_CHAR_POSX (320-8)
#define MAX_CHAR_POSY (240-16)
u8 temp, t, pos;
if(x > MAX_CHAR_POSX || y > MAX_CHAR_POSY)
return;
LCD_open_windows(x,y,8,16);
for (pos=0;pos<16;pos++)
{
temp=ascii_8x16[((acsii-0x20)*16)+pos];
for(t=0; t<8; t++)
{
if(temp & 0x80)
{
if(t==0) /*èç1ûêÇò»DDÆeμã--ÔòÖØD¿aÆôò»¸ö¾ØDÎ*/
{
LCD_open_windows(x,y+pos,8,16-pos);
LCD_WR_Data(Color);
}
else
{
LCD_WR_Data(Color);
}
}
else
{
if(t==7)
{
LCD_open_windows(x,y+pos+1,8,16-pos-1);
}
else
{
LCD_open_windows(x+t+1,y+pos,8-t,1);
}
temp <<= 1;
}
}
#undef MAX_CHAR_POSX
#undef MAX_CHAR_POSY
}
|
|