本人在学习tftlcd显示时,想显示几个自定大小的ascii字符,不想通过字库来显示,根据例程修改一下.但显示不成功,请高人指点.
//在指定位置显示一个字符
//x,y:起始坐标
//num:要显示的字符:" "--->"~"
//size:字体大小 24
//mode:叠加方式(1)还是非叠加方式(0)
void LCD_ShowChar24(u16 x,u16 y,u8 num,u8 size,u8 mode)
{
u8 temp,t1,t;
// u16 y0=y;
u16 colortemp=POINT_COLOR;
//设置窗口
num=num-' ';//得到偏移后的值
if(!mode) //非叠加方式
{
for(t=0;t<size;t++)
{
temp=asc3_20[num][t];
for(t1=0;t1<8;t1++)
{
if(temp&0x80)POINT_COLOR=colortemp;
else POINT_COLOR=BACK_COLOR;
LCD_DrawPoint(x,y);
temp<<=1;
// if(x>=lcddev.width){POINT_COLOR=colortemp;return;}//超区域了
}
}
}else//叠加方式
{
for(t=0;t<size;t++)
{
temp=asc3_20[num][t];
for(t1=0;t1<8;t1++)
{
if(temp&0x80)LCD_DrawPoint(x,y);
temp<<=1;
y++;
// if(x>=lcddev.height){POINT_COLOR=colortemp;return;}//超区域了
}
}
}
POINT_COLOR=colortemp;
}
void LCD_ShowString24(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)
{
// u8 x0=x;
// width+=x;
// height+=y;
while(*p!='\0')//判断是不是非法字符!
{
LCD_ShowChar24(x,y,*p,size,0);
x+=12;
p++;
}
} |