⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdlib.c

📁 s3c44b0 4色液晶驱动,显示数据,汉字图形功能
💻 C
📖 第 1 页 / 共 2 页
字号:
	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 + -