打印

求助,在做OLED显示实验时,showchar函数帮忙解释下,谢谢了

[复制链接]
541|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
社畜一枚|  楼主 | 2018-7-28 17:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//在指定位置显示一个字符,包括部分字符
//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);                //得到字体一个字符对应点阵集所占的字节数{这句问题最大,size是指字体大小,一个字符所占字符数,以2412字体为例,不就是一个2412字体占36个字节吗?那按照这上面说的size 24/8=3,是三个字节?)
                                                                                  如果说2412的字体大小意思是指24X12bits,那么看下show_string函数中的size(也是指24吗?),main函数里OLED_ShowString(0,0,"ALIENTEK",24); 这里面的24是指的什么?}
        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;
                        }
                }           
    }         
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

397

主题

401

帖子

0

粉丝