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

📄 main.c

📁 mtv512mg + mx88v462 液晶电视驱动C完整程序
💻 C
📖 第 1 页 / 共 3 页
字号:
			else
				memcpy(&buf[36],DIS,3);
				
			if ( Fac_Clr )
			{
				buf[42] = 0x0D;
				buf[43] = 0x32;
				buf[44] = 0x31;
				buf[45] = 0x28;
			}
		}
		Write_OSDCode(buf, 8, 6, 64);	//Write OSD Code buffer
	}
	if ( Menu_mode == 2 )
	{
		memcpy(buf,UserOSD,10);
		for (i=10; i<20; i++)
			buf[i] = 0x54;
		buf[10+Menu_item] = 0x5C;
		Write_OSDCode(buf, 10, 2, 16);	//Write OSD Code buffer
	}
}

void	Factory_Key_Check()
{
	if ( Key )
	{
		if (OnOff && KeyFlag && Key == MENU )
		{
			KeyFlag = 0;
			if ( Menu_mode == 1 )
				Menu_mode = 2;
			else
				Menu_mode = 1;

			Menu_item = 0;
			Factory_Menu_Init();
		}
						
		
		if (KeyFlag == 1 || KeyTimer > 60 )
		{
			if ( KeyFlag )
				KeyFlag = 0;
			else
				KeyTimer = 45;
				
			if ( Menu_mode == 1 )
			{
				switch ( Key )
				{
					case UP:
						if ( Menu_item > 0 )
							Menu_item--;
						else
							Menu_item = 7;
	
						Factory_Menu_HL();
						break;
					case DOWN:
						if ( Menu_item < 7 )
							Menu_item++;
						else
							Menu_item = 0;
	
						Factory_Menu_HL();
						break;
					case LEFT:
					case RIGHT:
						switch ( Menu_item )
						{
							case 0:
								ColorEN ^= 0x01;
								break;
							case 1:
								ColorEN ^= 0x02;
								break;
							case 2:
								ColorEN ^= 0x04;
								break;
							case 3:
								SoundEN ^= 0x01;
								break;
							case 4:
								SoundEN ^= 0x02;
								break;
							case 5:
								SoundEN ^= 0x04;
								break;							
							case 6:
								SoundEN ^= 0x08;
								break;
							case 7:
								Factory_Clear_All();
								break;
						}
						Factory_Menu_1();
						Save_Factory();
				}
			}
			else if ( Menu_mode == 2 )
			{
				switch ( Key )
				{
					case UP:
						switch ( UserOSD[Menu_item] )
						{
							case	0x59:
								UserOSD[Menu_item] = 0x0A;
								break;
							case	0x23:
								UserOSD[Menu_item] = 0x00;
								break;
							case	0x09:
								UserOSD[Menu_item] = 0x54;
								break;
							case	0x57:
								UserOSD[Menu_item] = 0x77;
								break;
							case	0x7F:
								UserOSD[Menu_item] = 0x59;
								break;
							default		:
								UserOSD[Menu_item]++;
								break;						
						}
						Save_Factory();
						break;
					case DOWN:
						switch ( UserOSD[Menu_item] )
						{
							case	0x59:
								UserOSD[Menu_item] = 0x7F;
								break;
							case	0x77:
								UserOSD[Menu_item] = 0x57;
								break;
							case	0x54:
								UserOSD[Menu_item] = 0x09;
								break;
							case	0x00:
								UserOSD[Menu_item] = 0x23;
								break;
							case	0x0A:
								UserOSD[Menu_item] = 0x59;
								break;
							default		:
								UserOSD[Menu_item]--;
								break;						
						}
						Save_Factory();
						break;
					case LEFT:
						if ( Menu_item > 0)
							Menu_item--;
						else
							Menu_item = 9;
						break;
					case RIGHT:
						if ( Menu_item < 9)
							Menu_item++;
						else
							Menu_item = 0;
						break;
				}
				Factory_Menu_1();
			}
		}
	}
}

void	Factory_Clear_All()
{
	BYTE	i;
	
	if ( Fac_Clr )
		return;
		
	for (i=0;i<16;i++)
	{
		buf[i] = 0;
	}
	I2C_Write(EEPROM_WRID, 0x00, 0x10, buf);
	Delay(3000);
	Fac_Clr = 1;
}


void	Menu_Hue_Down()
{
	if (Hue > 0 ) Hue--;
	S_Hue = Hue;
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Hue_Up()
{
	if (Hue < 50 ) Hue++;
	S_Hue = Hue;
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Brightness_Down()
{
	if (Brightness > 0 ) Brightness--;
	S_Brightness = Brightness;
	Set_VideoPP(0);
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Brightness_Up()
{
	if (Brightness < 50 ) Brightness++;
	S_Brightness = Brightness;
	Set_VideoPP(0);
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Contrast_Down()
{
	if (Contrast > 0 ) Contrast--;
	S_Contrast = Contrast;
	Set_VideoPP(0);
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Contrast_Up()
{
	if (Contrast < 50 ) Contrast++;
	S_Contrast = Contrast;
	Set_VideoPP(0);
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Saturation_Down()
{
	if (Saturation > 0 ) Saturation--;
	S_Saturation = Saturation;
	Set_VideoPP(0);
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Saturation_Up()
{
	if (Saturation < 50 ) Saturation++;
	S_Saturation = Saturation;
	Set_VideoPP(0);
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Sharpen_Down()
{
	if (Sharpen > 0 ) Sharpen--;
	S_Sharpen = Sharpen;
	Set_VideoPP(0);
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Sharpen_Up()
{
	if (Sharpen < 50 ) Sharpen++;
	S_Sharpen = Sharpen;
	Set_VideoPP(0);
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Screen_Switch()
{
	Screen_mode = 1 - Screen_mode ;
	if (Source_type <= RGBHV )
	{
		V46X_ScreenMode(Screen_mode);
	}
	Show_MainMenu1();
	Save_Parameter();
}

void	Menu_Language_Down()
{
	Language_Down();
	Show_MainMenu_Init();
	Save_Parameter();	
}

void	Menu_Language_Up()
{
	Language_Up();
	Show_MainMenu_Init();
	Save_Parameter();
}

void	Menu_Mirror_Switch()
{
	HV_Change();
	Show_MainMenu1();
	Save_Parameter();
}

void	Menu_Blue_Switch()
{
	if ( Blue_back )
		Blue_back = 0;
	else
		Blue_back = 1;
	Screen_Blue();
	Show_MainMenu1();
	Save_Parameter();
}

void	Menu_Color_Down()
{
	ColorSystem_Down();
	V46X_ColorSystem(Video_SYS);
	
	if ( Video_SYS == NTSC || Video_SYS == PALM || Video_SYS == PALN )
		SIF = M;
	else if ( Video_SYS == PAL && SIF != BG && SIF != DK && SIF != I )
		SIF = BG;
	else if ( Video_SYS == SECAM && SIF != BG && SIF != DK && SIF != L )
		SIF = BG;
	else if ( Video_SYS == NTSC443 )
		SIF = M;

	Set_CS(Video_SYS);
	Set_SIF(SIF);
	Set_DEMOD();	
	Show_MainMenu1();
	Save_Channel();
}

void	Menu_Color_Up()
{
	ColorSystem_Up();
	V46X_ColorSystem(Video_SYS);

	if ( Video_SYS == NTSC || Video_SYS == PALM || Video_SYS == PALN )
		SIF = M;
	else if ( Video_SYS == PAL && SIF != BG && SIF != DK && SIF != I )
		SIF = BG;
	else if ( Video_SYS == SECAM && SIF != BG && SIF != DK && SIF != L )
		SIF = BG;
	else if ( Video_SYS == NTSC443 )
		SIF = M;

	Set_CS(Video_SYS);
	Set_SIF(SIF);
	Set_DEMOD();	
	Show_MainMenu1();
	Save_Channel();
}

void	Menu_Sound_Down()
{
//	return;
	
	SoundSystem_Down();
	Set_CS(Video_SYS);
	Set_SIF(SIF);
	Set_DEMOD();
	Show_MainMenu1();
	Save_Channel();
}

void	Menu_Sound_Up()
{
//	return;
	
	SoundSystem_Up();
	Set_CS(Video_SYS);
	Set_SIF(SIF);
	Set_DEMOD();
	Show_MainMenu1();
	Save_Channel();
}

void	Menu_Channel_Down()
{
	if ( Channel > 0 )
		Channel -- ;
	else
		Channel = 99;
	Show_Channel();
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Channel_Up()
{
	if ( Channel < 99 )
		Channel ++ ;
	else
		Channel = 0;
	Show_Channel();
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Parameter();
}

void	Menu_Skip_Switch()
{
	Skip = !Skip;
	Show_MainMenu1();
	Save_Channel();
}

void	Menu_Band_Down()
{
	Fine_Turn = 0x80;
	
	if ( Fp_Position >= Fp_UHF_Start )
		Fp_Position = Set_VH();
	else if ( Fp_Position >= Fp_VH_Start )
		Fp_Position = Set_VL();
	else
		Fp_Position = Set_UHF();
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Channel();
}

void	Menu_Band_Up()
{
	Fine_Turn = 0x80;
	
	if ( Fp_Position >= Fp_UHF_Start )
		Fp_Position = Set_VL();
	else if ( Fp_Position >= Fp_VH_Start )
		Fp_Position = Set_UHF();
	else
		Fp_Position = Set_VH();
	Show_MainMenu1();
	Show_MainMenu2();
	Save_Channel();
}

void	Menu_Auto_Start()
{
	Auto_Start = 1;
	Fine_Turn = 0x80;
	Search_Flag = 5;
	Fp_Position = Fp_VL_Start;
	Channel = 0;
}

void	Menu_Fine_Down()
{
	if ( Fine_Turn > 0x76 )
		Fine_Turn--;
	Set_Fosc(Fp_Position,Fine_Turn);
	Show_MainMenu1();
	Save_Channel();
}

void	Menu_Fine_Up()
{
	if ( Fine_Turn < 0x8A )
		Fine_Turn++;
	Set_Fosc(Fp_Position,Fine_Turn);
	Show_MainMenu1();
	Save_Channel();
}

void	Menu_Search_Down()
{
	Fine_Turn = 0x80;
	Search_Flag = 3;
}

void	Menu_Search_Up()
{
	Fine_Turn = 0x80;
	Search_Flag = 4;
}

void	Menu_Down()
{
	switch ( MainMenuItem[Menu_mode-1][Menu_item] )
	{
		case	18:
			Menu_Hue_Down();
			break;
		case	0:
			Menu_Brightness_Down();
			break;
		case	1:
			Menu_Contrast_Down();
			break;
		case	2:
			Menu_Saturation_Down();
			break;
		case	3:
			Menu_Sharpen_Down();
			break;
		case	4:
			Menu_Screen_Switch();
			break;
		case	5:
			Menu_Blue_Switch();
			break;
		case	6:
			Menu_Language_Down();
			break;
		case	7:
			Menu_Mirror_Switch();
			break;
		case	8:
			Menu_Color_Down();
			break;
		case	9:
			Menu_Sound_Down();
			break;
		case	12:
			Menu_Channel_Down();
			break;
		case	13:
			Menu_Skip_Switch();
			break;
		case	14:
			Menu_Band_Down();
			break;
		case	15:
			Menu_Fine_Down();
			break;
		case	16:
			Menu_Search_Down();
			break;
		case	17:
			Menu_Auto_Start();
			break;
	}
}

void	Menu_Up()
{
	switch ( MainMenuItem[Menu_mode-1][Menu_item] )
	{
		case	18:
			Menu_Hue_Up();
			break;
		case	0:
			Menu_Brightness_Up();
			break;
		case	1:
			Menu_Contrast_Up();
			break;
		case	2:
			Menu_Saturation_Up();
			break;
		case	3:
			Menu_Sharpen_Up();
			break;
		case	4:
			Menu_Screen_Switch();
			break;
		case	5:
			Menu_Blue_Switch();
			break;
		case	6:
			Menu_Language_Up();
			break;
		case	7:
			Menu_Mirror_Switch();
			break;
		case	8:
			Menu_Color_Up();
			break;
		case	9:
			Menu_Sound_Up();
			break;
		case	12:
			Menu_Channel_Up();
			break;
		case	13:
			Menu_Skip_Switch();
			break;
		case	14:
			Menu_Band_Up();
			break;
		case	15:
			Menu_Fine_Up();
			break;
		case	16:
			Menu_Search_Up();
			break;
		case	17:
			Menu_Auto_Start();
			break;
	}
}

void	Menu_Hue_Show(BYTE	*buf)
{
	Show_Number(Hue,buf);
}

void	Menu_Brightness_Show(BYTE	*buf)
{
	Show_Number(Brightness,buf);
}

void	Menu_Contrast_Show(BYTE	*buf)
{
	Show_Number(Contrast,buf);
}

void	Menu_Saturation_Show(BYTE	*buf)
{
	Show_Number(Saturation,buf);
}

void	Menu_Sharpen_Show(BYTE	*buf)
{
	Show_Number(Sharpen,buf);
}

void	Menu_Screen_Show(BYTE	*buf)
{
	if ( Screen_mode )
	{
		buf[0] = 0x04;
		buf[1] = 0x7A;
		buf[2] = 0x03;
	}
	else
	{
		buf[0] = 0x01;
		buf[1] = 0x06;
		buf[2] = 0x7A;
		buf[3] = 0x09;
	}
}

void	Menu_Blue_Show(BYTE	*buf)
{
	if ( Blue_back )
	{
		memcpy(buf,OSD_Table_OnOff[0][Language],5);
	}
	else
	{
		memcpy(buf,OSD_Table_OnOff[1][Language],5);
	}			
}

void	Menu_Horizontal_Show(BYTE	*buf)
{
	if ( HPosition > 32 )
	{
		buf[0] = 0x57;
		buf[1] = (HPosition-32)/10;
		buf[2] = (HPosition-32)%10;				
	}
	else if ( HPosition < 32 )
	{
		buf[0] = 0x54;
		buf[1] = (32-HPosition)/10;
		buf[2] = (32-HPosition)%10;				
	}
	else
	{
		buf[0] = 0x0;
		buf[1] = 0x0;				
	}		
}

void	Menu_Vertical_Show(BYTE	*buf)
{
	if ( VPosition > 0 )
	{
		buf[0] = 0x57;
		buf[1] = VPosition/10;
		buf[2] = VPosition%10;	
	}
	else
	{			
		buf[0] = 0x0;
		buf[1] = 0x0;				
	}		
}

void	Menu_Language_Show(BYTE	*buf)
{
	memcpy(buf,OSD_Table_Language[Language],3);
}

void	Menu_Mirror_Show(BYTE	*buf)
{
	buf[0] = 0x1;
	if ( Horizontal )
		buf[0] += 1;
	if ( Vertical )
		buf[0] += 2;
}

void	Menu_Color_Show(BYTE	*buf)
{
	memcpy(buf,OSD_Table_Video_Type[Video_SYS],6);
}

void	Menu_Sound_Show(BYTE	*buf)
{
	memcpy(buf,OSD_Table_Sound_Type[SIF],4);
}

void	Menu_Channel_Show(BYTE	*buf)
{
	Show_Number(Channel, buf);
}

void	Menu_Skip_Show(BYTE	*buf)
{
	if ( Skip )
	{
		memcpy(buf,OSD_Table_OnOff[0][Language],5);
	}
	else
	{
		memcpy(buf,OSD_Table_OnOff[1][Language],5);
	}
}

void	Menu_Auto_Show(BYTE	*buf)
{
	buf[0] = 0x5B;
	buf[1] = 0x5B;
}

void	Menu_Fine_Show(BYTE	*buf)
{
	if ( Fine_Turn > 0x80 )
	{ 
		buf[0] = 0x57;
		if ( Fine_Turn-0x80 < 10 )
			buf[1] = Fine_Turn-0x80;
		else
		{
			buf[1] = (Fine_Turn-0x80)/10;
			buf[2] = (Fine_Turn-0x80)%10;
		}
	}
	else if ( Fine_Turn < 0x80 ) 
	{
		buf[0] = 0x54;
		if ( 0x80-Fine_Turn < 10 )
			buf[1] = 0x80-Fine_Turn;
		else
		{
			buf[1] = (0x80-Fine_Turn)/10;
			buf[2] = (0x80-Fine_Turn)%10;
		}
	}
	else
		buf[0] = 0x0;
}

void	Menu_Search_Show(BYTE	*buf)
{
	buf[0] = 0x5A;
	buf[1] = 0x5B;
}

void	Menu_Band_Show(BYTE	*buf)
{
	if ( (Fp_Position >= Fp_VL_Start) && (Fp_Position < Fp_VH_Start) )
	{
		buf[0]= 0x1F;		//"V-L"
		buf[1]= 0x54;
		buf[2]= 0x15;
	}
	else if( (Fp_Position >= Fp_VH_Start) && (Fp_Position < Fp_UHF_Start) )
	{
		buf[0]= 0x1F;		//"V-H"
		buf[1]= 0x54;
		buf[2]= 0x11;
	}
	else
	{
		buf[0]= 0x1E;		//"UHF"
		buf[1]= 0x11;
		buf[2]= 0x0F;
	}	
}

void	Menu_Show(BYTE	item, BYTE	*buf)
{
	switch	( item )
	{
		case	18:
			Menu_Hue_Show(buf);
			break;
		case	0:
			Menu_Brightness_Show(buf);
			break;
		case	1:
			Menu_Contrast_Show(buf);
			break;
		case	2:
			Menu_Saturation_Show(buf);
			break;
		case	3:
			Menu_Sharpen_Show(buf);
			break;
		case	4:
			Menu_Screen_Show(buf);
			break;
		case	5:
			Menu_Blue_Show(buf);
			break;
		case	6:
			Menu_Language_Show(buf);
			break;
		case	7:
			Menu_Mirror_Show(buf);
			break;
		case	8:
			Menu_Color_Show(buf);
			break;
		case	9:
			Menu_Sound_Show(buf);
			break;
		case	10:
			Menu_Horizontal_Show(buf);
			break;
		case	11:
			Menu_Vertical_Show(buf);
			break;
		case	12:
			Menu_Channel_Show(buf);
			break;
		case	13:
			Menu_Skip_Show(buf);
			break;
		case	14:
			Menu_Band_Show(buf);
			break;
		case	15:
			Menu_Fine_Show(buf);
			break;
		case	16:
			Menu_Search_Show(buf);
			break;
		case	17:
			Menu_Auto_Show(buf);
			break;
	}
}

⌨️ 快捷键说明

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