📄 gb2hex.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 + -