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

📄 handlekey.c

📁 一个用于驱动TFT屏的驱动程序,使用IC:1828,program (无EEPROM 无IR,完整说明)IIC只写一个
💻 C
📖 第 1 页 / 共 2 页
字号:
	if (ch_index == 0x04)
		ch_index = 0x01;

  	change1828Ch(ch_index);	
   
	setCurrentCh(ch_index);
   	displayCap(ch_index,current_format);

	DelayXms(0xff);												// avoid error repress
}

//********************************************************************
// 函数:void adjValue(unsigned char * value,bit add_flag,unsigned char MAX_value)
// 作用:在0~MAX_value,内使值加一减1
// 参数:  value      => 更改的值
//       add_flag	 => 加减标志
//        MAX_value	 => 允许的最大值
// remarks:	
//*********************************************************************
void adjValue(unsigned char * value,bit add_flag,unsigned char MAX_value)
{
	if(add_flag)
	{
		if(value < MAX_value)
			(*value)++;
	}
	else
		if(value > 0x00)
			(*value)--;	 			
	
}

//********************************************************************
// 函数:void adjMsgBox(unsigned char value,unsigned char max_value)
// 作用:在Bottom 处显示一个块
// 参数:  value      => 显示的值
//        max_value  =>
// remarks:	
//*********************************************************************
void adjMsgBox(unsigned char value,unsigned char max_value)
{
	unsigned char idata temp[0x16];
	unsigned char idata i,j;
	unsigned char       count;
	char idata 			*ptr;

	if(max_value == 0xFF)
	{
		i = value/16;
		j = value%16;
		j = j/2;
		j = j + 0x70;
	}
	else if (max_value== 0x3F)
	{
		i = value/4;
		j = value%4;
		j = j++;
		j = j*2;
		j = j + 0x70;
	}

	temp[0] = 0x51;
	ptr = &temp[1];
	for (count = i;count > 0;count--)
	{
		*ptr = 0x78;
		ptr++;
	}
	*ptr = j;
	ptr++;
	j = 0x10;
	j = j - i;
	for (count = j;count > 0;count--)
	{
		*ptr = 0x70;
		ptr++;
	}
	temp[17] = 0x52;
	temp[18] = 0x6D;
	temp[19] = value/100 + 0x62;								// 1
	i = value%100;
	temp[20] = i/10 + 0x62;										// 2
	temp[21] = i%10 + 0x62;										// 3
	
	osdDisplay(0xB0,0x16,&temp);  	
}


//********************************************************************
//函数:void initsubmenu1()
//作用:Initial Brightness menu
//参数:
//remarks:
//*********************************************************************
void initsubmenu1()
{
	osd_madr(bottom,0xB0);										// Set the initial address of Content Block
	//osdSwitch(0x00);											// Turn the OSD T/C/B block off

	// Disable blink or highlight zone
	osd_pos_Blink(title,0x00,0x00,0x00,0x00);
	osd_pos_Blink(content,0x00,0x00,0x00,0x00);
	osd_pos_Blink(bottom,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(title,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(content,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(bottom,0x00,0x00,0x00,0x00);

	// Select Block Color
	osd_ForeColor_N(title,HotPink);								// Title
	osd_BackColor_N(title,Transparent);							// Title
	osd_ForeColor_N(bottom,LightGreen);							// Content
	osd_BackColor_N(bottom,Transparent);						// Content
	osd_ForeColor_H(content,White);								// Content
	osd_BackColor_H(content,Transparent);						// Content

	// Set size of block
	osd_size(title,0x03,0x01);									// Set Title block size
	osd_size(bottom,0x16,0x01);									// Set Content block size

	// Set position of block
	osd_pos(title,0x85,0x2E);									// Set Title block position
	osd_pos(bottom,0x65,0x35);									// Set Content block position	

}

//********************************************************************
//函数:void printModeInfo()
//作用:Initial mode select  menu Function
//参数:
//remarks:
//*********************************************************************
void printModeInfo()
{
   	// Set initial address of OSD block
	osd_madr(bottom,0xB0);										// Set the initial address of Bottom Block
	osdSwitch(0x00);											// Turn the OSD T/C/B block off
	// Disable blink or highlight zone
	osd_pos_Blink(title,0x00,0x00,0x00,0x00);
	osd_pos_Blink(bottom,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(title,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(bottom,0x00,0x00,0x00,0x00);
	// Select Block Color
	osd_ForeColor_N(title,MediumAquamarine);					// Title
	osd_BackColor_N(title,Transparent);							// Title
	osd_ForeColor_N(bottom,White);								// Bottom
	osd_BackColor_N(bottom,Transparent);						// Bottom
	// Set size of block
	osd_size(title,0x06,0x00);									// Set Title block size
	osd_size(bottom,0x16,0x01);									// Set Bottom block size
	// Set position of block
	osd_pos(title,0x56,0x35);									// Set Title block position
	osd_pos(bottom,0x76,0x35);									// Set Bottom block position

	//osd_clear(0x00);
	osdDisplay(0x00,0x04,&code_ScMode);
	//osdSwitch(0x05);
}


//********************************************************************
//函数:void printMenuInfo()
//作用:初始化顶部菜单(Initial Top menu)
//参数:
//remarks:
//*********************************************************************
void printMenuInfo()
{
	// Set initial address of OSD block
	osd_madr(content,0x20);	
	osd_madr(bottom,0xB0);										// Set the initial address of ContentBlock and Bottom  Block
	
	//  osdSwitch(0x00);// Turn the OSD T/C/B block off

	// Disable blink or highlight zone
	osd_pos_Blink(title,0x00,0x00,0x00,0x00);
	osd_pos_Blink(content,0x00,0x00,0x00,0x00);
	osd_pos_Blink(bottom,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(title,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(content,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(bottom,0x00,0x00,0x00,0x00);

	// Set size of block
	osd_size(title,0x06,0x01);		   							 // Set Title block size
	osd_size(content,0x10,0x08);								 // Set Content block size

	// Set position of block
	osd_pos(title,0x90,0x07);									 // Set Title block position
	osd_pos(content,0x80,0x0A);									 // Set Content block position

	// Select Block Color
	osd_ForeColor_N(title,Black);			  					 // Title
	osd_BackColor_N(title,Transparent);							 // Title
	osd_ForeColor_N(content,LightGreen);						 // Content
	osd_BackColor_N(content,Transparent);						 // Content
	osd_ForeColor_H(content,HotPink);						     // Content
	osd_BackColor_H(content,Transparent);						 // Content
	
	//打印菜单,显示的是英文
	osdDisplay(0x20,0x04,&code_Hue);
	osdDisplay(0x30,0x05,&code_Satr);
	osdDisplay(0x40,0x08,&code_Cont);
	osdDisplay(0x50,0x0A,&code_Brit);
	osdDisplay(0x60,0x04,&code_Reset);

	osdSwitch(0x07);											// Turn Title/Content/Bottom Block on
}

//********************************************************************
//函数:void printSwitchInfo(unsigned char kind,unsigned char choose)
//作用:打印出一些开关信息
//参数:
//remarks:
//*********************************************************************
void printSwitchInfo(unsigned char kind,unsigned char choose)
{
	switch(kind)
	{
		case 1:													// 打开或者是关闭
			if(choose == 0)
				osdDisplay(0xB0,0x05,&code_Close);
			else
				osdDisplay(0xB0,0x05,&code_Open);
			break;
		case 2:													// 屏幕比例的设置信息
			if(choose == 0)
				osdDisplay(0xB0,0x05,&code_16to9);
			else
				osdDisplay(0xB0,0x05,&code_4to3);
			break;
		case 3:													// 镜像的设置信息
			if(choose == 0)
				osdDisplay(0xB0,0x05,&code_Yes);
			else
				osdDisplay(0xB0,0x05,&code_No);
			break;
		default:break;
	}	
}

//****************************************************
//函数: void displayCap(unsigned char ch_index,unsigned char format)
//作用: Show Caption 
//参数:ig_index     => 8 bits , Singal index
//****************************************************
void displayCap(unsigned char ch_index,unsigned char  format)
{
	osdSwitch(0x00);											// Turn the OSD T/C/B block off
	// Blinking
	osd_pos_Blink(title,0x00,0x00,0x00,0x00);
	osd_pos_Highlight(title,0x00,0x00,0x00,0x00);
	osd_clear(0x00);
	// Select Block Color
	osd_ForeColor_N(title,Orange);								// Title
	osd_BackColor_N(title,Transparent);							// Title
	// Set position of block
	osd_pos(title,0x35,0x09);									// Set Title block position
	osd_clear(0x10);
	osd_clear(0x23);
	osd_clear(0x20);
	clrScreen();

	if(ch_index == 0x01)										// S-Video input
	{
		osd_size(title,0x2D,0x00);								// Set Title block size
		osdDisplay(0x00,0x03,&code_AV1);
	}
	else if(ch_index == 0x02)									// S-Video input
	{
		osd_size(title,0x2D,0x00);								// Set Title block size
		osdDisplay(0x00,0x03,&code_AV2);
	}
	else if(ch_index == 0x03)
	{
		osd_size(title,0x2D,0x00);								// Set Title block size
		osdDisplay(0x00,0x03,&code_AV3);
	}	 
	osdSwitch(0x04);	
	
	if(format == 0x03)
		osdDisplay(0x0A,0x05,&code_NTSC);						//Show OSD Function
  	else
	 	osdDisplay(0x0A,0x05,&code_PAL);						//Show OSD Function

	osdSwitch(0x04);											// 只显示标题
}

//********************************************************************
//函数:void clearMenuFlag()
//作用:清除菜单的选择标志
//参数:
//remarks:
//*********************************************************************
void clearMenuFlag()
{
	topMenu_flag  = 0;
	modeMenu_flag = 0;
}

//********************************************************************
//函数:void clearMenuSel()
//作用:清除主菜单选项中的选择标志
//参数:
//remarks:
//*********************************************************************
void clearMenuSel()
{
	sel_brit   = 0;												// Brightness menu flag
	sel_cont   = 0;												// Contrast menu flag
	sel_satr   = 0;												// Saturation menu flag
	sel_hue    = 0;												// Hue menu flag
	sel_reset  = 0;												// Reset register flag
}

//********************************************************************
//函数:void setICAppValue()
//作用:向1828写入Brightness、Contrast、Saturation、Hue值
//参数:
//remarks:
//*********************************************************************
void setICAppValue()
{
	adj_britclr(britc,britc_value);								// Set VX1828 Brightness Register	
	adj_britclr(contc,contc_value);								// Set VX1828 Contrast Register	
	adj_britclr(satr,satr_value);								// Set VX1828 Saturation Register	
	adj_britclr(hue,hue_value);									// Set VX1828 Hue Register	
}
//********************************************************************
//函数:void loadAppInitValue()
//作用:设置Brightness、Contrast、Saturation、Hue的初始值
//参数:
//remarks:
//*********************************************************************
void loadAppInitValue()
{
	britc_value = 0x80;											// Combine Brightness selection
	contc_value = 0x80;											// Combine Contrast selection
	satr_value  = 0x80;											// Saturation menu selection
	hue_value   = 0x20;											// Hue menu selection
}






⌨️ 快捷键说明

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