📄 lcdlib.c
字号:
switch (type)
{
case HIGH16:
{
Lcd_G4816_Char( x0,y0,Char,rev,Color);
break;
}
case HIGH24:
{
Lcd_G4X24_Char( x0,y0,Char,rev,Color);
break;
}
case HIGH24B:
{
Lcd_G42424_Char( x0,y0,Char,rev,Color);
break;
}
case HIGH32:
{
Lcd_G42432_Char( x0,y0,Char,rev,Color);
break;
}
case HIGH32B:
{
Lcd_G43232_Char( x0,y0,Char,rev,Color);
break;
}
case HIGH64:
{
Lcd_G43264_Char( x0,y0,Char,rev,Color);
break;
}
default:
{
Lcd_G4X24_Char( x0,y0,Char,rev,Color);
break;
}
}
}
void Slib_SetCursor(U16 x,U16 y)
{
Cursor=y*640+x;
}
void Slib_PutStr(U16 x,U16 y,U8 *pstr,U8 rev,U8 Color,U16 len)
{
U16 xx,yy,i=0;
U32 Cur;
Cur=y*640+x;
while(*pstr)
{
if(*pstr=='\n') break;
if(i>=len)
{
break;
}
i++;
xx=(U16)(Cur%640);
yy=(U16)(Cur/640);
Lcd_G4X24_Char(xx,yy,*pstr,rev,Color);
pstr++;
Cur+=XXX;
if(Cur > 300000) //超出屏幕范围 15行 X 40个字符=600
Cur=0;
}
}
void OutStr(U8 *c,U16 x,U16 y,U8 rev,U8 Color,U8 type,U16 len )
{
int i;U8 j;
j=*c;
j-=0x30;
switch (type)
{
case HIGH16:
{
for(i=0;i<len;i++)
{
Lcd_Char(x+i*8,y,*c++,rev,Color,HIGH16);
}
break;
}
case HIGH24:
{
/*for(i=0;i<len;i++)
{
CXZKF24B(*c++);
Lcd_G4_Char(x+i*16,y,x+i*16+16,y+24,PP,rev,Color);
} */
//Slib_SetCursor(x,y);
Slib_PutStr(x,y,c, rev, Color,len);
break;
}
case HIGH24B:
{
for(i=0;i<len;i++)
{
Lcd_Char(x+i*24,y,j*5+i,rev,Color,HIGH24B);
}
break;
}
case HIGH32:
{
for(i=0;i<len;i++)
{
if(*c==' '){*c=14;}
else if(*c=='*'){*c=15;}
else if(*c=='-'){*c=12;}
else if(*c=='+'){*c=11;}
else if(*c=='.'){*c=10;}
else {*c-=48;}
if(*c<0)
{*c=15; }
Lcd_Char(x+i*24,y,*c++,rev,Color,HIGH32);
}
break;
}
case HIGH32B:
{
for(i=0;i<len;i++)
{
Lcd_Char(x+i*32,y,j*5+i,rev,Color,HIGH32B);
}
break;
}
case HIGH64:
{
for(i=0;i<len;i++)
{
if(*c==' '){*c=14;}
else if(*c=='*'){*c=15;}
else if(*c=='-'){*c=12;}
else if(*c=='+'){*c=11;}
else if(*c=='.'){*c=10;}
else {*c-=48;}
if(*c<0)
{*c=15; }
Lcd_Char(x+i*32,y,*c++,rev,Color,HIGH64);
}
break;
}
default:
{
for(i=0;i<len;i++)
{
Lcd_Char(x+i*8,y,*c++,rev,Color,HIGH16);
}
break;
}
}
}/*-------------------------------------*/
void OutFloat(float *Z,U16 x,U16 y,U8 rev,U8 Color,U8 type,U16 len)
{
int i,j,k,n,len2,len3,len4;
unsigned long d0,d;
float f1,f2;
U8 a;
U8 ghb[40];
U8 *str;
U8 V,B,N[10];
U32 M;
len2=len;
len3=len;
len4=len;
len3=len3>>8;
len3=len3&0xf;
len4=len4&0xf;
if (((len>>8)&0xff)>8)len=0x403;
if ((len&0xff)>8)len=0x403;
str=ghb;
if(*Z<0) len+=0x0100;
len+=0x100;
j=len>>8 ;
if(j>18){j=8;len=(len & 0x0ff)+j<<8;}
f1=fabs(*Z);
if((long)f1<0x7ffffff0)
{
d=(long)f1;
f2=f1-d;
for(i=10;i>0;)
{ a=d%10;
d=d/10;
*(str+i)=a+0x30;
i--;j--;
if(d==0 && a==0 && i==9 && (len3==len4)){ i++;j++;break;}
if(d==0) break;
}
if((j<0) | (j==0 & *Z<0))
{for(i=0;i<20;i++) *(str+i)='*'; i=-1;}
else if(j>0)
{if(*Z<0)
{ *(str+i)='-';i--;j--;}
{ for(*(str+11)='.',k=12;j>0;j--,k++)
{ f2=f2*10.0;
a=(U8)(f2);
f2=f2-a;
*(str+k)=a+0x30;
}
k=k-13-(len & 0x00ff);
for(;k>0;k--,i--)*(str+i)=' ';
}
}
}
else
{
for(i=0;i<20;i++) *(str+i)='*'; i=-1;
}
len>>=8;
if(!(*(str-1)=='*') )
{ n=i;
for(k=5,j=len+i+1;j>i;j--)
{if(j==11)j--;
if(j==(i+1) && *(str+i+1)=='-')
{*(str+i)='-';*(str+i+1)='1';i--;k=0;break;}
if(*(str+j)==32 && k==1)*(str+j)='1';
else if(*(str+j)==45 && k==1){*(str+j)='1';*(str+j-1)='-';}
else *(str+j)+=k;
if(*(str+j)>'9')
{k=1;*(str+j)='0';}
else {k=0;break;}
}
if(k==1){*(str+i)='1';i--;}
if((11-i)>len)
{for(j=0;j<20;j++) *(str+j)='*'; i=-1;}
}
for(j=0,i++;j<len;j++)*(str+j)=*(str+j+i);
if (*Z<0) {OutStr(str,x,y,rev,Color,type,len-1);}
else
{
switch(type)
{
case HIGH64:
{
*(str+22)=' ';
OutStr(str+22,x,y,rev,Color,type,1);
OutStr(str,x+32,y,rev,Color,type,len-1);
break;
}
case HIGH32:
{
*(str+22)=' ';
OutStr(str+22,x,y,rev,Color,type,1);
OutStr(str,x+24,y,rev,Color,type,len-1);
break;
}
case HIGH24:
{
*(str+22)=' ';
OutStr(str+22,x,y,rev,Color,type,1);
OutStr(str,x+12,y,rev,Color,type,len-1);
break;
}
default:
{
*(str+22)=' ';
OutStr(str+22,x,y,rev,Color,type,1);
OutStr(str,x+8,y,rev,Color,type,len-1);
break;
}
}
}
}
void FloatToStr(float *Z,U8 *StrF,U16 len)
{
int i,j,k,n;
U16 LenBAK;
unsigned long d0,d;
float f1,f2;
U8 a;
U8 ghb[40];
U8 *str;
U8 V,B,N[10];
U32 M;
str=ghb;
LenBAK=len;
if ((len & 0xff00)>0x600)len=0x602;
if(*Z<0) len+=0x0100;
len+=0x100;
j=len>>8 ;
if(j>18){j=8;len=(len & 0x0ff)+j<<8;}
f1=fabs(*Z);
if((long)f1<0x7ffffff0)
{
d=(long)f1;
f2=f1-d;
for(i=10;i>0;)
{ a=d%10;
d=d/10;
*(str+i)=a+0x30;
i--;j--;
if(d==0 && a==0 && i==9 && ((LenBAK&0xf) == (LenBAK>>8))){ i++;j++;break;}
if(d==0) break;
}
if((j<0) | (j==0 & *Z<0))
{for(i=0;i<20;i++) *(str+i)='*'; i=-1;}
else if(j>0)
{if(*Z<0)
{ *(str+i)='-';i--;j--;}
{ for(*(str+11)='.',k=12;j>0;j--,k++)
{ f2=f2*10.0;
a=(U8)(f2);
f2=f2-a;
*(str+k)=a+0x30;
}
k=k-13-(len & 0x00ff);
for(;k>0;k--,i--)*(str+i)=' ';
}
}
}
else
{
for(i=0;i<20;i++) *(str+i)='*'; i=-1;
}
len>>=8;
if(!(*(str-1)=='*') )
{ n=i;
for(k=5,j=len+i+1;j>i;j--)
{if(j==11)j--;
if(j==(i+1) && *(str+i+1)=='-')
{*(str+i)='-';*(str+i+1)='1';i--;k=0;break;}
if(*(str+j)==32 && k==1)*(str+j)='1';
else if(*(str+j)==45 && k==1){*(str+j)='1';*(str+j-1)='-';}
else *(str+j)+=k;
if(*(str+j)>'9')
{k=1;*(str+j)='0';}
else {k=0;break;}
}
if(k==1){*(str+i)='1';i--;}
if((11-i)>len)
{for(j=0;j<20;j++) *(str+j)='*'; i=-1;}
}
for(j=0,i++;j<len;j++)*(str+j)=*(str+j+i);
if (*Z<0) StrCpy(str,StrF,len-1);
else
{
*(str+22)=' ';
//StrCpy(str+22,StrF,1);
StrCpy(str,StrF,len-1);
}
}
void Slib_ClearScr(void)
{
int i,j;
for( j = 0; j < 480 ; j++ )//480
{
for( i = 0 ; i <40 ; i++ )//40
{
frameBuffer4[j][i]=0x00000000;
}
}
}
U32 Cursor = 0;
void Slib_Init(void)
{
Cursor=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -