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

📄 useradj.c

📁 台湾联咏NT68663 LCD MONITOR 控制程序(完整版)
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "MATH.H"
#include "F63XDEF.H"
#include "UserAdj.H"
#include "RAM.H"
#include "IIC.H"
#include "MyDef.H"
#include "stdio.h"
#include "Scaler.H"
#include "F63XREG.H"
#include "IIC.H"
#include "Rom_map.H"
#include "OSD_TAB.H"
#include "sRGB.H"
#include "AUTOADJ.H"
#include "MODEHANDLE.H"
#include "PANEL.H"
#include "MCU.H"
#include "SAA7114.H"

void AdjustProcess(void)
{
	Bit SaveFlag;
	Byte Temp,Temp1;
	if(MenuPtr.Op == 0)
		return;
//Main Menu ----------------------------------------------------------------
	SaveFlag = 0;
	if(MenuPtr.Menu == 1|| MenuPtr.Menu == 3|| MenuPtr.Menu == 5)
		{
		if(MenuPtr.Level == 1|| MenuPtr.Level == 2)
			{
			switch(MenuPtr.Page)
				{
				case 0:
					if(FuncBuf[pVIDEOSOURCE]==0){
						FuncPtr = Page0Item[MenuPtr.Ptr];
						BackItem = Page0Item[BackPtr];
					}
					else if(FuncBuf[pVIDEOSOURCE]==1){
						FuncPtr = Page0ItemD[MenuPtr.Ptr];
						BackItem = Page0ItemD[BackPtr];
					}
					else if(FuncBuf[pVIDEOSOURCE]==2){
						FuncPtr = Page0ItemY[MenuPtr.Ptr];
						BackItem = Page0ItemY[BackPtr];
					}
					//else if(FuncBuf[pVIDEOSOURCE]>2){
					//	FuncPtr = Page0ItemV[MenuPtr.Ptr];
					//	BackItem = Page0ItemV[BackPtr];
					//}
					break;		
				case 1:
					FuncPtr = Page1Item[MenuPtr.Ptr];
					BackItem = Page1Item[BackPtr];
					break;		
				case 2:
					FuncPtr = Page2Item[MenuPtr.Ptr];
					BackItem = Page2Item[BackPtr];
					break;		
				case 3:
					FuncPtr = Page3Item[MenuPtr.Ptr];
					BackItem = Page3Item[BackPtr];
					break;		
				case 4:
					FuncPtr = Page4Item[MenuPtr.Ptr];
					BackItem = Page4Item[BackPtr];
					break;		
				case 5:
					FuncPtr = Page5Item[MenuPtr.Ptr];
					BackItem = Page5Item[BackPtr];
					break;		
				case 6:
					FuncPtr = Page6Item[MenuPtr.Ptr];
					BackItem = Page6Item[BackPtr];
					break;		
				};
			}

		if(BackItem == pCOLORTEMP && FuncBuf[pCOLORTEMP] == 3)	//enter RGB adjust menu
			if(MenuPtr.Level == 2)
				{
//				BackPtr = MenuPtr.Ptr;
				switch(MenuPtr.Page)
					{
					case 2:
						//FuncPtr = RGBmenuItem[MenuPtr.Ptr];
						FuncPtr = Page2Item[MenuPtr.Ptr];
						break;		
					};
				}

//Digital Control
		if(FuncPtr >= pFACTMENU)		//digital control
			{
			if(MenuPtr.Op == oINCVAL || MenuPtr.Op == oDECVAL)
				{
				switch(FuncPtr)
					{
					case pRECALL:
						ShowYesNo(1);
						Osd_Off();
						Recall(1);
						//MenuPtr.Menu = 0;
						//MenuPtr.Level = 0;
						//MenuPtr.Ptr = 0;
						if(FuncBuf[pVIDEOSOURCE] == 0){
							ShowMessage(MSG_AUTOTUNE);
							AutoTune();
						}
							//TunePositionOnly();
						break;
					case pMUTE:
							AudioMute= ~AudioMute;
							SetAudioMute();
							Write24C16(ep_Status,StatusFlag);
						break;
					case pAUTOSETTING:
							AutoSetting= ~AutoSetting; 
							Write24C16(ep_Status,StatusFlag);
						break;
					case pLIGHTEN:
							LightEn = ~LightEn; 
							WriteIIC563(0x130, LightEn);
						break;
					case pSCALERMODE:
						ScalerMode= ~ScalerMode; 
						if(FuncBuf[pVIDEOSOURCE] < 2){
							Temp1 = ReadIIC563(0x080);
							WriteIIC563(0x080,Temp&(~BIT_0));
							
							Temp = ReadIIC563(0x16e);
							WriteIIC563(0x16e,Temp&(~BIT_0));
							SetScalerMode();
							WaitSetup(8);
							WriteIIC563(0x16e,Temp);
							WriteIIC563(0x080,Temp1);
						}
							break;
						
					};
				}
			}
//Analog Control
		else
			{
			GetFuncRange(FuncPtr);
			if(MenuPtr.Op == oDECVAL || MenuPtr.Op == oINCVAL || MenuPtr.Op == oUPDATE)
				{
				//if(FuncPtr != pVIDEOSOURCE)
					SetFuncMaxMin();
				switch(FuncPtr)
					{
					case pBRIGHTNESS:
						//if(FuncBuf[pVIDEOSOURCE] < 3)
							SetBrightness();
						//else
						//	SetVideoBrightness();
						//SaveFlag = 1;
						break;
					case pCONTRAST:
						//if(FuncBuf[pVIDEOSOURCE] < 3)
							SetContrast();
						//else
						//	SetVideoContrast();
						//SaveFlag = 1;
						break;
					case pPHASE:
						if(FuncBuf[pVIDEOSOURCE] == 0)
							{
							SetADC_Phase();
							//SaveFlag = 1;
							}
						break;
					case pCLOCK:
						if(FuncBuf[pVIDEOSOURCE] == 0)
							{
							SetADC_PLL();
							//SaveFlag = 1;
							}
						break;
					case pBACKLIGHT:
						SetInverter();
						//SaveFlag = 1;
						break;
					case pHPOSITION:
						if(FuncBuf[pVIDEOSOURCE] == 0)
							{
							SetHP();
							//SaveFlag = 1;
							}
						break;
					case pVPOSITION:
						if(FuncBuf[pVIDEOSOURCE] == 0)
							{
							SetVP();
							//SaveFlag = 1;
							}
						break;
					case pOSDHPOSITION:
						OsdPosition();
						//SaveFlag = 1;
						break;
					case pOSDTIMER:
						//SaveFlag = 1;
						break;
					case pSATURATION:
						if(FuncBuf[pVIDEOSOURCE] < 3)
							#if ContrastBlock == BackEndGain
							sRGB((Byte)FuncBuf[pCONTRAST],(Byte)FuncBuf[pRCOLOR],(Byte)FuncBuf[pGCOLOR],(Byte)FuncBuf[pBCOLOR]);
							#else
							SetContrast();
							#endif
						//else
						//	SetVideoSaturation();
						//SaveFlag = 1;
						break;
					case pTINT:
						if(FuncBuf[pVIDEOSOURCE] < 3)
							#if ContrastBlock == BackEndGain
							sRGB((Byte)FuncBuf[pCONTRAST],(Byte)FuncBuf[pRCOLOR],(Byte)FuncBuf[pGCOLOR],(Byte)FuncBuf[pBCOLOR]);
							#else
							SetContrast();
							#endif
						//else
						//	SetVideoTint();
						//SaveFlag = 1;
						break;
					case pRCOLOR:
					case pGCOLOR:
					case pBCOLOR:
						if(FuncBuf[pCOLORTEMP] == 3)
							SetContrast();
						//SaveFlag = 1;
						break;
					case pCOLORTEMP:
						LoadColor(FuncBuf[pCOLORTEMP]);
						SetContrast();
						SetInverter();
						//SaveFlag = 1;
						break;
					case pLANGUAGE:
						if(FuncBuf[pLANGUAGE]== 5){
							WriteSeqIndexPort(0xd0,tySRAM_1BIT,OneBitFontJP,45*27);
							WriteSeqIndexPort(0x90,tySRAM_1BIT,OneBitFontJP2,7*27);
						}
						else if((FuncBuf[pLANGUAGE] == 7)||(FuncBuf[pLANGUAGE] == 8)){
							WriteSeqIndexPort(0xd0,tySRAM_1BIT,OneBitFontCH2,48*27);
							WriteSeqIndexPort(0x90,tySRAM_1BIT,OneBitFontCH3,6*27);
						}
						else
							WriteSeqIndexPort(0x90,tySRAM_1BIT,OneBitFontPY,7*27);
						//SaveFlag = 1;
						break;
					case pSHARPNESS:
						if(FuncBuf[pVIDEOSOURCE] < 3)
							SetSharpness();
						//else
						//	SetVideoSharpness();
						//SaveFlag = 1;
						break;
					case pTRANSOSD:
						SetOsdTrans();
						//SaveFlag = 1;
						break;
					case pVIDEOSOURCE:
						if(MenuPtr.Level == 1 && MenuPtr.Ptr != FuncBuf[pVIDEOSOURCE])
							{
							FuncBuf[pVIDEOSOURCE] = MenuPtr.Ptr;
							printf("Video source %d\n",FuncBuf[pVIDEOSOURCE]);
							Write24C16(ep_Sync_Source,FuncBuf[pVIDEOSOURCE]);
							Osd_Off();
							FastMuteEnable = 0;
							BackLightOff();
							//FastMuteOn();
							SetSource();
							MessageShow = 0;	//show msg if Video sync off
							}
						else
							Osd_Off();
						//MenuPtr.Level = 1;
						break;
					case pVOLUME:
						AudioMute = 0;
						SetAudioMute();
						Write24C16(ep_Status,StatusFlag);
						SetAudioVolume();
						//SaveFlag = 1;
						break;
					case pLIGHTBRIGHT:
						SetLightBrightness();
						break;
					case pLIGHTCONTRAST:
						SetLightContrast();
						break;
					case pLIGHTHSTART:
						SetLightHS();
						break;
					case pLIGHTHWIDTH:
						SetLightHW();
						break;
					case pLIGHTVSTART:
						SetLightVS();
						break;
					case pLIGHTVHIGHT:
						SetLightVH();
						break;
					};
				SaveFlag = 1;
				}
			else
				if(MenuPtr.Op == oINCFUNC || MenuPtr.Op == oDECFUNC)
					{
					switch(FuncPtr)
						{
						case pVIDEOSOURCE:
							GetFuncRange(FuncPtr);
							SetFuncMaxMin();
							break;
						};
					}
			}
		if(SaveFlag)
			{
			SavePointer = FuncPtr;
			SaveTimer = SAVE_FUNC_TIME;
			}
		}
//Factory Menu -----------------------------------------------------------
	if(MenuPtr.Menu == 2)	//fact menu
		{
		//if(MenuPtr.Level == 1)
			//FuncPtr = FactmenuItem[MenuPtr.Ptr];
			FuncPtr = FactItem[MenuPtr.Ptr].Index;
		if(FuncPtr >= pFACTMENU)		//digital control
			{
			if(/*MenuPtr.Op == oINCVAL || MenuPtr.Op == oDECVAL || */MenuPtr.Op == oENTER)
				{
				switch(FuncPtr)
					{
					case pAUTOCOLOR:
						if(FuncBuf[pVIDEOSOURCE] == 0)
							{
							Osd_Off();
							ShowMessage(MSG_AUTOCOLOR);
							AutoColor();
							Osd_Off();
							MenuPtr.Menu = 2;
							MenuPtr.Ptr = 0;
							MenuPtr.Page = 0;
							MenuPtr.Level = 0;
							MenuPtr.Op = oUPDATEALL;
							}
						break;
					case pEEPROMINIT:
						Osd_Off();
						ShowMessage(MSG_EEPROMINIT);
						InitEEPROM();
						Recall(1);
						LoadADC_Gain();
						Osd_Off();
						MenuPtr.Menu = 2;
						MenuPtr.Ptr = 1;
						MenuPtr.Page = 0;
						MenuPtr.Level = 0;
						MenuPtr.Op = oUPDATEALL;
						break;
					case pAUTOADJUST:	//lo_cs
						if(FuncBuf[pVIDEOSOURCE] == 0)
							{
							Osd_Off();
							ShowMessage(MSG_AUTOTUNE);
							AutoTune();	
							Osd_Off();
							MenuPtr.Menu = 2;
							MenuPtr.Ptr = 0;
							MenuPtr.Page = 0;
							MenuPtr.Level = 0;
							MenuPtr.Op = oUPDATEALL;
							}
						break;
					};
				}
			}
		else
			{
			GetFuncRange(FuncPtr);
			if(MenuPtr.Op == oDECVAL || MenuPtr.Op == oINCVAL)
				{
				SetFuncMaxMin();
				switch(FuncPtr)
					{
					case pBRIGHTNESS:
						SetBrightness();
						//SaveFlag = 1;
						break;
					case pRCOLOR:
					case pGCOLOR:
					case pBCOLOR:
						//FuncBuf[pCOLORTEMP] = (MenuPtr.Ptr - 9)/3;
						//LoadColor(FuncBuf[pCOLORTEMP]);
						//GetFuncRange(FuncPtr);
						SetContrast();
						//SaveFlag = 1;
						break;
					case pBACKLIGHT:
						SetInverter();
						//SaveFlag = 1;
						break;
					case pRADC:
						SetADCGain(pRADC);
						//SaveFlag = 1;
						break;
					case pGADC:
						SetADCGain(pGADC);
						//SaveFlag = 1;
						break;
					case pBADC:
						SetADCGain(pBADC);
						//SaveFlag = 1;
						break;
					case pROFFSET:
						SetADCOffset(pROFFSET);
						//SaveFlag = 1;
						break;
					case pGOFFSET:
						SetADCOffset(pGOFFSET);
						//SaveFlag = 1;
						break;

⌨️ 快捷键说明

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