初级会员

- 积分
- 136
- 金钱
- 136
- 注册时间
- 2012-8-28
- 在线时间
- 11 小时
|
发表于 2013-3-9 22:05:35
|
显示全部楼层
程序有错:
应把如下去掉:
if((y-y0)==size)
{
y=y0;
x++;
break;
}
换成
y=y0;
x++;
即:
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode)
{
u8 temp,t,t1;
u8 y0=y;
chr=chr-' ';//得到偏移后的值
for(t=0;t<size;t++)
{
if(size==12)temp=asc2_1206[chr][t]; //调用1206字体,提取一列点的字节。
else temp=asc2_1608[chr][t]; //调用1608字体,提取一列点的字节。
for(t1=0;t1<8;t1++)
{/*刷新8个点的SRAM矩阵*/
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;
}
*/
y=y0;
x++;
}
}
} |
|