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

📄 character.c

📁 上位机液晶显示程序
💻 C
字号:
#include "character.h"
extern char UART_data[5];
extern void number_to_char(uint8 data,char *tmp );
//#include "file.h"
extern struct dst_inf *ppp;
//求最大值
UINT32  max(UINT32  a , UINT32 b)
{
        UINT32 temp = 0;
        if(a>=b)
        	{
        	temp = a;
        	}
        else if(a<b)
        	{
        	temp =b;
        	}
        return temp;

}

/*
char  file_dir_daxie[] = "\\DAXIE\\AD.ICT";
char  file_dir_xiaoxie[] = "\\XIAOXIE\\AX.ICT";
char  file_dir_num[] = "\\NUM\\1.ICT";
char  file_dir_space[] = "\\NUM\\SPACE.ICT";

//生成根据文件名生成文件路径
char * get_file_dir(char  file_name)
{
	
	
	char  * file_dir;

	if(file_name>64&&file_name<91)
		{
		file_dir = file_dir_daxie;
		file_dir[7] = file_name;
		}
	else if(file_name>96&&file_name<123)
		{
		file_name -= 32;
		file_dir = file_dir_xiaoxie;
		file_dir[9] = file_name;
		}
	else if(file_name>47&&file_name<58)
		{
		file_dir = file_dir_num;
		file_dir[5] = file_name;
		}
	else
		{
		file_dir = file_dir_space;
		}

	return file_dir;
	
}
*/	
extern int UART0_SendByte(uint8 data);

void Get_Data(uchar *data, uchar * file_name)
{
	UART0_SendStr("IN Get_Data********************\n file_name=");
	Uart_Printf("%x ",*file_name);
	UART0_SendStr("IN...");
	while( (*file_name) != 0xB4)
	{
		*data = *file_name;
		file_name++;
		data++;
		*data = *file_name;
		file_name++;
		data++;	
		*data = *file_name;
		file_name++;
		data++;
	}
//补上最后一针数据	
	*data = *file_name;
	file_name++;
	data++;
	*data = *file_name;
	file_name++;
	data++;		
	*data = *file_name;
	file_name++;
	data++;
}

	
extern uchar file_dst[100000];
extern uchar color_flag;
extern uchar turnRoundStatus;
/////////////////////////////////////////////////////////
///字符编辑函数
//int  character_edit(struct dst_inf *p , uchar *file ,uint8 len , char * p_string )
int  character_edit(struct dst_inf *p , uchar *file ,uint8 len , uchar ** p_string )
{
	UINT32 i,j;
	int whole_pin_num,color_num,width,hight;
    uchar * character_dst = file+9000;      //读入祖父文件到缓存区的末尾指针
    uchar * character_data = file+512;      //将针数据放入缓冲区的指针首地址

	///////////////////////////////////////////////////////////////////////
	///读取第一个字符对应的文件

	turnRoundStatus=0;//初始化花样方向为"上"
	ppp=p;

	 Get_Data(character_dst, p_string[0]);
	////////////////
    whole_pin_num = character_dst[0];
	color_num   = character_dst[1];
	width = character_dst[2] + character_dst[3]  + 10;//10为字符间距
	hight = character_dst[4] + character_dst[5] ;
	
	for(i=0;i<whole_pin_num*3;i++)
 	{
 		character_data[i] = character_dst[i+6];
 	}

	///////////////////////////////////////////////////////////////////////
	///读取后面的字符对应的文件
	
      for(i=1;i<len;i++)
   	{
		Get_Data(character_dst, p_string[i]);
		character_data[(whole_pin_num)*3-3] = 0xB2;
		character_data[(whole_pin_num)*3-2] = 0;
		character_data[(whole_pin_num)*3-1] = 0;
		for(j=0;j<(character_dst[0])*3;j++)
		{
      			character_data[j+(whole_pin_num)*3] = character_dst[j+6];
      		} 

		whole_pin_num += character_dst[0];
		color_num += character_dst[1];
		width = width + 10;//10为字符间距
		width = width + character_dst[2] + character_dst[3];
		hight = max(hight,(character_dst[4] + character_dst[5])); 

        /*UART0_SendStr("********  (  "); 
               	number_to_char(whole_pin_num,&UART_data[0]);
		UART0_SendStr(UART_data);	
		UART0_SendStr("  )(  "); 
		number_to_char(color_num,&UART_data[0]);
		UART0_SendStr(UART_data);	
		UART0_SendStr("  )( "); 
		number_to_char(width,&UART_data[0]);
		UART0_SendStr(UART_data);	
		UART0_SendStr("  )(  "); 
		number_to_char(hight,&UART_data[0]);
		UART0_SendStr(UART_data);	
		UART0_SendStr("   )************ "); */

   	}
	///////////////////////////////////////////////////////////////////////
	//数据赋值给结构体
	ppp->width = width;
	ppp->hight = hight;
	ppp->star_x = -(width/2);
 	if((ppp->star_x)<0)
 	{
 		ppp->star_x = 32768 - ppp->star_x;
 	}
	ppp->star_y = -(hight/2);
 	if((ppp->star_y)<0)
 	{
 		ppp->star_y = 32768 - ppp->star_y;
 	}
	ppp->color_num = color_num;
	ppp->whole_pin_num = whole_pin_num;
	/*tmp = ppp->whole_pin_num/0xff;
	number_to_char(tmp,&UART_data[0]);
	UART0_SendStr(UART_data);
	UART0_SendStr("*256 + ");
	number_to_char(ppp->whole_pin_num,&UART_data[0]);
	UART0_SendStr(UART_data);
	UART0_SendStr("*** ");*/
	ppp->data_stitch = character_data;
	return 0;
}

⌨️ 快捷键说明

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