初级会员

- 积分
- 121
- 金钱
- 121
- 注册时间
- 2016-7-24
- 在线时间
- 20 小时
|
学习原子的战舰OLEd实验,对于函数OLED_ShowChar()里的u8 csize=(size/8+((size%8)?1:0))*(size/2); //得到字体一个字符对应点阵集所占的字节数
不是很理解,哪位高手可以解答一下,小弟不胜感激。贴上函数代码:
//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白显示;1,正常显示
//size:选择字体 12/16/24
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode)
{
u8 temp,t,t1;
u8 y0=y;
u8 csize=(size/8+((size%8)?1:0))*(size/2); //得到字体一个字符对应点阵集所占的字节数
chr=chr-' ';//得到偏移后的值
for(t=0;t<csize;t++)
{
if(size==12)
{
temp=asc2_1206[chr][t]; //调用1206字体
}
else if(size==16)
{
temp=asc2_1608[chr][t]; //调用1608字体
}
else if(size==24)
{
temp=asc2_2412[chr][t]; //调用2412字体
}
else
return; //没有的字库
for(t1=0;t1<8;t1++)
{
if(temp&0x80)
{
OLED_DrawPoint(x,y,mode);
}
else
{
OLED_DrawPoint(x,y,!mode);
}
temp<<=1;
y++;
if((y-y0)==size)
{
y=y0;
x++;
break;
}
}
}
}
|
|