@@ -141,7 +141,7 @@ int SHOW_MENU(menu *m,int encoder,char button,char lan)
|
||||
list++;
|
||||
}
|
||||
str[c]='\0';
|
||||
OLED_Str(0, 16*b, 16, str, 1);
|
||||
OLED_Str(0, 16*b, 16, str,0, 1);
|
||||
c=0;
|
||||
list++;
|
||||
|
||||
@@ -231,7 +231,7 @@ void mymain()
|
||||
case 0:
|
||||
//启动跳转模式
|
||||
//用于读取系统配置后跳转到其他程序
|
||||
|
||||
//OLED_Str_list(0,0,8,"123\n456\n789",1,2,1);
|
||||
mode=1;
|
||||
break;
|
||||
case 1:
|
||||
@@ -246,12 +246,12 @@ void mymain()
|
||||
{
|
||||
da();
|
||||
}
|
||||
OLED_Str(0,0,8,moser_buff,1);
|
||||
OLED_Str(0,0,8,moser_buff,0,1);
|
||||
|
||||
|
||||
fps_++;
|
||||
sprintf(str,"FPS:%d",fps);
|
||||
OLED_Str(0,56,8,str,1);
|
||||
OLED_Str(0,56,8,str,0,1);
|
||||
|
||||
if(B1.code==255)
|
||||
{
|
||||
|
||||
@@ -972,9 +972,11 @@ void OLED_Ascii(unsigned char x,unsigned char y,unsigned char size,char chr,unsi
|
||||
|
||||
}
|
||||
|
||||
void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char type)
|
||||
void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char lenconst,unsigned char type)
|
||||
{
|
||||
unsigned char size2;
|
||||
unsigned char tempx=x;
|
||||
unsigned char templenstard=1;
|
||||
switch(size)
|
||||
{
|
||||
case 8:
|
||||
@@ -990,21 +992,34 @@ void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsig
|
||||
|
||||
while(*str!='\0')
|
||||
{
|
||||
if(x+size2>=X_WIDTH)
|
||||
|
||||
if((x+size2>=X_WIDTH)||(*str=='\n'))
|
||||
{
|
||||
if(lenconst!=0)
|
||||
{
|
||||
if(templenstard>=lenconst)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
templenstard++;
|
||||
y+=size;
|
||||
if(y>=Y_WIDTH)
|
||||
{
|
||||
y=0;
|
||||
//y=0;
|
||||
return;
|
||||
}
|
||||
x=0;
|
||||
x=tempx;
|
||||
}else
|
||||
{
|
||||
OLED_Ascii(x,y,size,*str,type);
|
||||
x+=size2;
|
||||
}
|
||||
|
||||
OLED_Ascii(x,y,size,*str,type);
|
||||
|
||||
|
||||
str++;
|
||||
|
||||
x+=size2;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1012,6 +1027,27 @@ void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsig
|
||||
|
||||
}
|
||||
|
||||
void OLED_Str_list(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char lenstard,unsigned char lenconst,unsigned char type)
|
||||
{
|
||||
unsigned char templenstard=0;
|
||||
while(templenstard!=lenstard)//跳转到指定行
|
||||
{
|
||||
|
||||
switch(*str)
|
||||
{
|
||||
case '\n': //如果是回车 行加加
|
||||
templenstard++;
|
||||
break;
|
||||
case '\0': //如果字符串提前结束 报错 直接返回
|
||||
return;
|
||||
}
|
||||
|
||||
str++;
|
||||
}
|
||||
OLED_Str(x,y,size,str,lenconst,type);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
几何绘图
|
||||
*/
|
||||
|
||||
@@ -29,7 +29,8 @@ void OLED_set_dot(unsigned char x,unsigned char y,unsigned char dot_type);
|
||||
void OLED_Pix(unsigned char x,unsigned char y,unsigned char w,unsigned char h,const char *p,unsigned char type);
|
||||
|
||||
void OLED_Ascii(unsigned char x,unsigned char y,unsigned char size,char chr,unsigned char type);
|
||||
void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char type);
|
||||
void OLED_Str(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char lenconst,unsigned char type);
|
||||
void OLED_Str_list(unsigned char x,unsigned char y,unsigned char size,char *str,unsigned char lenstard,unsigned char lenconst,unsigned char type);
|
||||
|
||||
void OLED_AL(int sx,int sy,int ex,int ey,unsigned char dot_type);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user