更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第28行: | 第28行: | ||
for(i=0;i<2;i++) | for(i=0;i<2;i++) | ||
{ | { | ||
temp = (asc2_12864[num][pos*8+i*4]<<24)<nowiki>|</nowiki>(asc2_12864[num][pos*8+i*4+1]<<16)<nowiki>|</nowiki>(asc2_12864[num][pos*8+i*4+2]<<8)<nowiki>|</nowiki>asc2_12864[num][pos*8+i*4+3];//调 | temp = (asc2_12864[num][pos*8+i*4]<<24)<nowiki>|</nowiki>(asc2_12864[num][pos*8+i*4+1]<<16)<nowiki>|</nowiki>(asc2_12864[num][pos*8+i*4+2]<<8)<nowiki>|</nowiki>asc2_12864[num][pos*8+i*4+3];//调用12864字体,需要自己取模定义 | ||
for(t=0;t<32;t++) | for(t=0;t<32;t++) | ||
{ | { | ||
| 第50行: | 第50行: | ||
for(i=0;i<2;i++) | for(i=0;i<2;i++) | ||
{ | { | ||
temp = (asc2_12864[num][pos*8+i*4]<<24)<nowiki>|</nowiki>(asc2_12864[num][pos*8+i*4+1]<<16)<nowiki>|</nowiki>(asc2_12864[num][pos*8+i*4+2]<<8)<nowiki>|</nowiki>asc2_12864[num][pos*8+i*4+3];//调 | temp = (asc2_12864[num][pos*8+i*4]<<24)<nowiki>|</nowiki>(asc2_12864[num][pos*8+i*4+1]<<16)<nowiki>|</nowiki>(asc2_12864[num][pos*8+i*4+2]<<8)<nowiki>|</nowiki>asc2_12864[num][pos*8+i*4+3];//调用12864字体,需要自己取模定义 | ||
for(t=0;t<32;t++) | for(t=0;t<32;t++) | ||
{ | { | ||
2023年6月12日 (一) 12:01的最新版本
- 64x128英文字体取模说明
- 函数定义如下:
/*参数说明*/
//x:显示的坐标点位置X;
//y:显示的坐标点位置Y;
//fc:前景色;
//bc:背景色;
//num:想要显示的字符,格式如字符A则输入:'A';
//mode:参数值0代表非叠加显示方式,参数1代表叠加显示方式;
void LCD_Show_12864_char(u16 x,u16 y,u16 fc, u16 bc, u8 num,u8 mode)
{
u32 temp;
u8 pos,t,i;
u16 colortemp=POINT_COLOR;
num=num-' ';//得到偏移后的值
LCD_SetWindows(x,y,x+64-1,y+128-1);//设置单个文字显示窗口
if(!mode) //非叠加方式:字体带有背景色,显示时会将原来显示的内容覆盖掉
{
for(pos=0;pos<128;pos++)
{
for(i=0;i<2;i++)
{
temp = (asc2_12864[num][pos*8+i*4]<<24)|(asc2_12864[num][pos*8+i*4+1]<<16)|(asc2_12864[num][pos*8+i*4+2]<<8)|asc2_12864[num][pos*8+i*4+3];//调用12864字体,需要自己取模定义
for(t=0;t<32;t++)
{
if(temp&0x80000000)
{
Lcd_WriteData_16Bit(fc);
}
else
{
Lcd_WriteData_16Bit(bc);
}
temp<<=1;
}
}
}
}
else//叠加方式:字体不带背景色,直接叠加显示到原来显示的内容上
{
for(pos=0;pos<128;pos++)
{
for(i=0;i<2;i++)
{
temp = (asc2_12864[num][pos*8+i*4]<<24)|(asc2_12864[num][pos*8+i*4+1]<<16)|(asc2_12864[num][pos*8+i*4+2]<<8)|asc2_12864[num][pos*8+i*4+3];//调用12864字体,需要自己取模定义
for(t=0;t<32;t++)
{
POINT_COLOR=fc;
if(temp&0x80000000)
{
LCD_DrawPoint(x+i*32+t,y+pos);//画一个点
}
temp<<=1;
}
}
}
}
POINT_COLOR=colortemp;
LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//恢复窗口为全屏
}
