弄了两天怎么改都改不正确,想找一个来参考参考,望各位大神给助攻!!!!!不胜感激!!!!!
显示汉字,画点函数需要改吗 ?个人认为不改不知道对吗?
void OLED_DrawPoint(u8 x,u8 y,u8 t)
{
u8 pos,bx,temp=0;
if(x>127||y>63)return;//????·??§??.
pos=7-y/8;
bx=y%8;
temp=1<<(7-bx);
if(t)OLED_GRAM[x][pos]|=temp;
else OLED_GRAM[x][pos]&=~temp;
}
字符显示部分
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=oled_asc2_1206[chr][t]; //?÷??1206×???
else temp=oled_asc2_1608[chr][t]; //?÷??1608×???
for(t1=0;t1<8;t1++)
{
if(temp&0x80)OLED_DrawPoint(x,y,mode); 这一句的if里面为什么要和0x80按位与呢?
else OLED_DrawPoint(x,y,!mode);
temp<<=1;
y++;
if((y-y0)==size)
{
y=y0;
x++;
break;
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
/**************************************************************************************/
///////////////////////////oo×ÖÏÔê¾///////////////////////////
/*******************************************************************************************/
////////////////////////////////////////////////////////////////////////////////////////////////////////
//ÔúÖ¸¶¨Î»ÖÃÏÔê¾ò»¸öoo×Ö
//x,y:Æeê¼×ø±ê
//num:òaÏÔê¾μÄ×Ö·û:" "--->"~"
//size:×Öìå′óD¡
//mode:μt¼ó·½ê½(1)»1êÇ·Çμt¼ó·½ê½(0)
void led_showcharH(u16 x,u16 y,u8 num,u8 size,u8 mode,u8 color)
{
u8 temp,t1,t;
u16 y0=y;
u8 csize=(size/16+((size%8)?1:0))*(size/2); //μÃμ½×Öìåò»¸ö×Ö·û¶Ôó|μãÕó¼ˉËùÕ¼μÄ×Ö½úêy
num=num-' ';//μÃμ½Æ«òÆoóμÄÖ죨ASCII×Ö¿aêÇ′ó¿Õ¸ñ¿aê¼è¡Ä££¬ËùòÔ-' '¾íêǶÔó|×Ö·ûμÄ×Ö¿a£©
for(t=0;t<csize;t++)
{
if(size==16)temp=Code16x16[num][t]; //μ÷óÃ×Öìå×ÖÄ£
else return; //ûóDμÄ×Ö¿a
for(t1=0;t1<16;t1++)
{
if(temp&0x80)set_pixel(y,x,color);
else if(mode==0)set_pixel(y,x,BLACK);
temp<<=1;
y++;
if(y>=32)return; //3¬ÇøóòáË
if((y-y0)==size)
{
y=y0;
x++;
if(x>=64)return; //3¬ÇøóòáË
break;
}
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//ÏÔ꾶à¸öoo×Ö
//x,y:Æeμã×ø±ê
//width,height:Çøóò′óD¡
//size:×Öìå′óD¡
//*p:×Ö·û′®Æeê¼μØÖ·
void led_showstringH(u16 x,u16 y ,u8 size,u8 *p,u8 color)
{
while( *p!=' '){ //ÅD¶ÏêÇ2»êÇ·Ç·¨×Ö·û!
led_showcharH(x,y,*p,size,0,color);
x+=size/2;
p++;
}
}
一周热门 更多>