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

📄 gb2hex.h

📁 在基于avr内核的单片机上实现MP3播放器的功能
💻 H
字号:
#define uart_debug_gb2312orgclus 0
uint32 GbOrgClus;
uint8 get_the_gbadrr(void )
{//uint8 file_gb[11] = {0x47,0x42,0x32,0x33,0x31,0x32,0x20,0x20,0x46,0x4f,0x4e};

FILE_HANDLE   fh_tp;
fh_tp=OnlyOpenFile("gb2312.fon",dir_org_clusId);
	//获得其目录簇号
    if(fh_tp.dir_posit.state==error) 
	{return error;}
	else {GbOrgClus=fh_tp.file_org_clusid;return ok;}
		  	#if uart_debug_gb2312orgclus==1	 
		 			diruart[0]=0xee;
		     CopyBytes((uint8 *)&(GbOrgClus),&diruart[1],4);
			 uart_send2(&diruart[0],5);		
		    #endif		
	
}




void SubDisplay_string(INT8U x, INT8U y,uint8 * point)
{unsigned char f1,f2;
uint8 xa,ya;
uint32  i;
xa=x;ya=y;
//========================
for(;*point!='\0';point++)
   {if( 0x80>=(*point) )  {put2asii(xa,ya,*point);xa+=8;if(xa>110) {xa=x;ya+=16;}}
    else {f1=*point;//is a hz
	      point++;
	      f2=*point;
		 i=(94*(f1-0xa1)+(f2-0xa1));//得到它的偏移地址*32
        i=i*32;
		 ReadBlock(Clus2LBA(GbOrgClus)+i/512); //为了高速 ,保证字库fat是连续的   
	     
		 Put2Gb(xa,  ya,&sd_buf[i%512] ,16,0xF800,0xFFE0);
		 xa+=16;if(xa>110) {xa=x;ya+=16;}
		 #if uart_debug_gb2312orgclus==1
		 uint32 kk;
		 kk=Clus2LBA(GbOrgClus);
		 			diruart[0]=0xFF;
		     CopyBytes((uint8 *)&(kk),&diruart[1],4);
			 uart_send2(&diruart[0],5);	
			 
			 	
		 kk=i;
		 			diruart[0]=0xaa;
		     CopyBytes((uint8 *)&(i),&diruart[1],4);
			 uart_send2(&diruart[0],5);	
			 
			 kk=f1*65536+f2;
			 			diruart[0]=0xbb;
		     CopyBytes((uint8 *)&(kk),&diruart[1],4);
			 uart_send2(&diruart[0],5);	 
			 
	
		 	      	/*            CopyBytes(&sd_buf[0],&diruart[0],128);//FB FC 00 00
			 uart_send2(&diruart[0],128);
				     CopyBytes(&sd_buf[128],&diruart[0],128);//FB FC 00 00
			 uart_send2(&diruart[0],128);
			 			     CopyBytes(&sd_buf[256],&diruart[0],128);//FB FC 00 00
			 uart_send2(&diruart[0],128);
			 			     CopyBytes(&sd_buf[384],&diruart[0],128);//FB FC 00 00
			 uart_send2(&diruart[0],128);*/
			 #endif
		 } 
   }       
}	

void SubDisplay_stringsize(INT8U x, INT8U y,uint8 * point,uint8 size)
{unsigned char f1,f2;
uint8 xa,ya,ss;
uint32  i;
xa=x;ya=y;
//========================
for(ss=0;ss<size;point++,ss++)
   {if( 0x80>=(*point) )  {put2asii(xa,ya,*point);xa+=8;if(xa>110) {xa=x;ya+=16;}}
    else {f1=*point;//is a hz
	      point++;ss++;
	      f2=*point;
		 i=(94*(f1-0xa1)+(f2-0xa1));//得到它的偏移地址*32
        i=i*32;
		 ReadBlock(Clus2LBA(GbOrgClus)+i/512); //为了高速 ,保证字库fat是连续的   
	     
		 Put2Gb(xa,  ya,&sd_buf[i%512] ,16,0xF800,0xFFE0);
		 xa+=16;if(xa>110) {xa=x;ya+=16;}
		 } 
   }       
}

void SubDisplay_stringsizeColor(INT8U x, INT8U y,uint8 * point,uint8 size,uint16 frgb,uint16 brgb)
{unsigned char f1,f2;
uint8 xa,ya,ss;
uint32  i;
xa=x;ya=y;
//========================
for(ss=0;ss<size;point++,ss++)
   {if( 0x80>=(*point) )  {PutChar(xa,ya,*point,frgb,brgb);xa+=8;if(xa>110) {xa=x;ya+=16;}}
    else {f1=*point;//is a hz
	      point++;ss++;
	      f2=*point;
		 i=(94*(f1-0xa1)+(f2-0xa1));//得到它的偏移地址*32
        i=i*32;
		 ReadBlock(Clus2LBA(GbOrgClus)+i/512); //为了高速 ,保证字库fat是连续的   
	     
		 Put2Gb(xa,  ya,&sd_buf[i%512] ,16,frgb,brgb);
		 xa+=16;if(xa>110) {xa=x;ya+=16;}
		 } 
   }       
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -