优化显示列表

Signed-off-by: kevin <kevin@lmve.net>
This commit is contained in:
2022-08-09 23:43:24 +08:00
parent 4f7d47edbd
commit f54fd763c4
12 changed files with 808 additions and 898 deletions
+43 -7
View File
@@ -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);
}
/*
几何绘图
*/