更多操作
无编辑摘要 |
无编辑摘要 |
||
第39行: | 第39行: | ||
for(pos=0;pos<48;pos++) | for(pos=0;pos<48;pos++) | ||
{ | { | ||
temp = (asc2_4824[num][pos*3]<<16)<nowiki>|</nowiki>(asc2_4824[num][pos*3+1]<<8)<nowiki>|</nowiki>asc2_4824[num][pos*3+2];//调 | temp = (asc2_4824[num][pos*3]<<16)<nowiki>|</nowiki>(asc2_4824[num][pos*3+1]<<8)<nowiki>|</nowiki>asc2_4824[num][pos*3+2];//调用4824字体,需要自己取模定义 | ||
for(t=0;t<24;t++) | for(t=0;t<24;t++) | ||
{ | { |
2020年3月11日 (三) 10:37的版本
- 24x48英文字体取模说明
- 函数定义如下:
void LCD_Show_4824_char(u16 x,u16 y,u16 fc, u16 bc, u8 num,u8 mode) { u32 temp; u8 pos,t; u16 colortemp=POINT_COLOR; num=num-' ';//得到偏移后的值 LCD_SetWindows(x,y,x+24-1,y+48-1);//设置单个文字显示窗口 if(!mode) //非叠加方式:字体带有背景色,显示时会将原来显示的内容覆盖掉 { for(pos=0;pos<48;pos++) { temp = (asc2_4824[num][pos*3]<<16)|(asc2_4824[num][pos*3+1]<<8)|asc2_4824[num][pos*3+2];//调用4824字体,需要自己取模定义 for(t=0;t<24;t++) { if(temp&0x800000) { Lcd_WriteData_16Bit(fc); } else { Lcd_WriteData_16Bit(bc); } temp<<=1; } } } else//叠加方式:字体不带背景色,直接叠加显示到原来显示的内容上 { for(pos=0;pos<48;pos++) { temp = (asc2_4824[num][pos*3]<<16)|(asc2_4824[num][pos*3+1]<<8)|asc2_4824[num][pos*3+2];//调用4824字体,需要自己取模定义 for(t=0;t<24;t++) { POINT_COLOR=fc; if(temp&(0x800000)) { LCD_DrawPoint(x+t,y+pos);//画一个点 } temp<<=1; } } } POINT_COLOR=colortemp; LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//恢复窗口为全屏 }