亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? autoadj.c

?? 臺灣聯詠NT68663 LCD MONITOR 控制程序(完整版)
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include "8051.H"
#include "MATH.H"
#include "Scaler.H"
#include "AutoAdj.H"
#include "MyDef.H"
#include "IIC.H"
#include "RAM.H"
#include "stdio.h"
#include "F63XREG.H"
#include "F63XDEF.H"
#include "MCU.H"
#include "UserAdj.H"
#include "ModeHandle.H"
#include "ROM_MAP.H"
#include "OSD.H"

void TunePositionOnly()
{
	Abort = 0;
	WriteIIC563(0x001,FuncBuf[pRADC]);
	WriteIIC563(0x004,FuncBuf[pGADC]);
	WriteIIC563(0x007,FuncBuf[pBADC]);
	AutoPosition();
	if(Abort)
		{	//fail
		LoadModeDependentSettings();
		SetHP();
		SetVP();
		#if PRINT_MESSAGE
			printf("Auto Position fail\n");
		#endif
		}
	else{		//ok
		SaveModeDependentSettings();
		#if PRINT_MESSAGE
			printf("Auto Position OK\n");
		#endif
		}
	SetContrast();
}

void AutoTune(void)
{
	Word addr;
//	Byte PixelRate;
	Abort = 0;
	NonFullScreen = 0;
	WriteIIC563(0x001,FuncBuf[pRADC]);
	WriteIIC563(0x004,FuncBuf[pGADC]);
	WriteIIC563(0x007,FuncBuf[pBADC]);
//	if(ModePoint < UserModeSt)
//		Recall();
	WriteIIC563(0x06a,0x00);	//jacky 20050426 disable de-jitter
	//WriteIIC563(0x069,0x00);	//jacky 20050426 disable NR
	//WriteIIC563(0x06b,0x00);	//jacky 20050426 disable NR
	AutoPosition();
	if(!Abort)
		AutoClock();
//	PixelRate = ((unsigned long)FuncBuf[pCLOCK] * H_SYNC)/10000;
//	if(PixelRate >= PanelMaxPClk/1000)
//		Abort = 1;
	if(NonFullScreen && !Abort)	//non fullscreen recall
		{
		//addr = ep_Sync_Data + (ModePoint * 8);
		//FuncBuf[pCLOCK] = Read24C16(addr+4) << 8;
		//FuncBuf[pCLOCK] |= Read24C16(addr+5);
		LoadPresetModeSettings(2);
		SetADC_PLL();
		}
	CheckAnyKey();
#if 0
	if(Abort){
		if(NonFullScreen == 0){
			//goto Error;
		}
		else{
			Abort = 0;
			AutoClockByPhase(1);
		}
	}
	else{
		AutoClockByPhase(0);
	}
#else
	if(!Abort)
		AutoClockByPhase(0);
#endif
	CheckAnyKey();
	if(!Abort)
		AutoPhaseFineTune(16);
	CheckAnyKey();
	if(!Abort)
		AutoPosition();
	CheckAnyKey();
	WriteIIC563(0x06a,0xd2);	//jacky 20050426 enable de-jitter
	//WriteIIC563(0x069,0x43);	//jacky 20050426 enable NR
	//WriteIIC563(0x06b,0x03);	//jacky 20050426 enable NR
	if(Abort)
		{	//fail
		Osd_Off();
		//if(ModePoint < UserModeSt)
		//	addr = ModePoint * 8;
		//else
		//	addr = UserModeRefReso * 8;
		LoadPresetModeSettings(0);
		//LoadModeDependentSettings();
		SetADC_PLL();
		SetADC_Phase();
//-------------------------------------------------------
		if(SyncMode != 3)
			{
			SetHP();
			SetVP();
			}
		if(Interlance){
			WriteWordIIC563(0x032,Vresolution);		// Capture V_Active
		}
		else{
			WriteWordIIC563(0x032,Vresolution); 	// Capture V_Active
		}
		WriteWordIIC563(0x036,Hresolution); 	// Capture H_Active
		//WriteWordIIC563(0x036,Hresolution + H_ActErrTab[ResolutionPtr]); 	// Capture H_Active
		//SetScaler();
		//--------------------------------------------------
		addr = ep_Reso_Offset + (ModePoint * 8);
		Write24C16(addr,Read24C16(addr));
		//Write24C16(addr,(Read24C16(addr) & 0x7f));
		#if PRINT_MESSAGE
			printf("AutoTune fail\n");
		#endif
		}
	else{		//ok
		Osd_Off();
		SaveModeDependentSettings();
		//Range.Hpos_Ref = FuncBuf[pHPOSITION];
		//Range.Vpos_Ref = (Byte)FuncBuf[pVPOSITION];
		//Range.Clock_Ref = FuncBuf[pCLOCK];
		//SaveRangeRef();
		Write24C16(ep_Reso_Offset + (ModePoint * 8), ResolutionPtr|0x80);
		#if PRINT_MESSAGE
			printf("AutoTune OK\n");
		#endif
		}
	LoadADC_Gain();
}
#if 0
void AutoPosition(void)
{
	Byte temp;
	#if PRINT_MESSAGE
		printf("AutoPosition\n");
	#endif
	WriteIIC563(0x02A,0);  // AutoPosition Pixel mask -> H
	WriteIIC563(0x02B,24);  // AutoPosition Pixel mask -> H
	WriteIIC563(0x02C,0x00);  // AutoPosition Pixel mask -> H
	WriteIIC563(0x02D,0x00);  // AutoPosition Pixel mask -> H
	WriteIIC563(0x107,0x30);  // Red Noise Margin
	WriteIIC563(0x106,0x00);
	if(SyncMode == 3)
 	 	WriteIIC563(0x106,0x11);
	else
  	 	WriteIIC563(0x106,0x01);
	#if DVImode == HVmode
	if(SyncMode == 3)
		WaitSetup(5);
		//Sleep(50);
	#endif
   	LocalTimer = 10;
   	while((ReadIIC563(0x106) & BIT_0) && LocalTimer != 0)
		{
		CheckModeChange();
		if(Abort)
			return;
		}
   	if(LocalTimer != 0)
		{				// Auto-Position OK
    	FuncBuf[pVPOSITION] = ReadIIC563(0x109) & 0x07;
		FuncBuf[pVPOSITION] <<= 8;
    	FuncBuf[pVPOSITION] |= ReadIIC563(0x108);
    	FuncBuf[pHPOSITION] = ReadIIC563(0x10F) & 0x07;
		FuncBuf[pHPOSITION] <<= 8;
    	FuncBuf[pHPOSITION] |= ReadIIC563(0x10E);
		#if PRINT_MESSAGE
			printf("VP_Start = %d\n",FuncBuf[pVPOSITION]);
			printf("HP_Start = %d\n",FuncBuf[pHPOSITION]);
		#endif
		if(((FuncBuf[pVPOSITION] > 0xff) || (FuncBuf[pHPOSITION] > (FuncBuf[pCLOCK]-H_Act)))&&(SyncMode != 3))
			{
			Abort = 1;			// abort
			#if PRINT_MESSAGE
				printf("AutoPosition fail\n");
			#endif
			}
		else{
			if(ResolutionPtr < 4)
				{
				if(FuncBuf[pVPOSITION] > (VTotal - Vresolution-1))
					FuncBuf[pVPOSITION] = VTotal - Vresolution-14;
				}
			SetHP();
			SetVP();
			}
		}
	else
		{
		Abort = 1;			// abort
		#if PRINT_MESSAGE
			printf("AutoPosition fail\n");
		#endif
		}
   	// wait for next V pulse coming to latch data
	WriteIIC563(0x1ab,BIT_1);
	LocalTimer = 100;
	while(LocalTimer != 0)
		{
		Sleep(1);
		temp = ReadIIC563(0x1ab);
		if(temp & BIT_1)
			break;
		}
}
#endif

void AutoPosition(void)
{
	Word OldVp,NewVp,Vact,Hact;
	#if PRINT_MESSAGE
		printf("AutoPosition\n");
	#endif
	WriteIIC563(0x02A,0);  // AutoPosition Pixel mask -> H
	WriteIIC563(0x02B,24);  // AutoPosition Pixel mask -> H
	WriteIIC563(0x02C,0x00);  // AutoPosition Pixel mask -> H
	WriteIIC563(0x02D,0x00);  // AutoPosition Pixel mask -> H
	WriteIIC563(0x107,0x30);  // Red Noise Margin
	WriteIIC563(0x106,0x00);
	if(SyncMode == 3)
 	 	WriteIIC563(0x106,0x11);
	else
  	 	WriteIIC563(0x106,0x01);
	#if DVImode == HVmode
	if(SyncMode == 3)
		WaitSetup(5);
	#endif
	OldVp = FuncBuf[pVPOSITION];
   	LocalTimer = 100;
   	while((ReadIIC563(0x106) & BIT_0) && LocalTimer != 0)
		{
		CheckModeChange();
		if(Abort)
			return;
		}
   	if(LocalTimer != 0)
		{				// Auto-Position OK
		Hact = ReadWordIIC563(0x110) & 0x0fff;
    	//Hact = ReadIIC563(0x111) & 0x3f;
		//Hact <<= 8;
    	//Hact |= ReadIIC563(0x110);
//		if(Hact < 300)
		if(Hact < Hresolution - 100)
		{
			Abort = 1;
			return;
		}
		FuncBuf[pVPOSITION] = ReadWordIIC563(0x108) & 0x07ff;
    	//FuncBuf[pVPOSITION] = ReadIIC563(0x109) & 0x07;
		//FuncBuf[pVPOSITION] <<= 8;
    	//FuncBuf[pVPOSITION] |= ReadIIC563(0x108);
		GetFuncRange(pVPOSITION);
		if(FuncBuf[pVPOSITION] > FuncMax)//over VPosition Max
		{
			FuncBuf[pVPOSITION] = FuncMax;
			#if PRINT_MESSAGE
				printf("VPositon over Max");
			#endif
		}
		FuncBuf[pHPOSITION] = ReadWordIIC563(0x10e) & 0x07ff;
    	//FuncBuf[pHPOSITION] = ReadIIC563(0x10F) & 0x07;
		//FuncBuf[pHPOSITION] <<= 8;
    	//FuncBuf[pHPOSITION] |= ReadIIC563(0x10E);
		GetFuncRange(pHPOSITION);
		if(FuncBuf[pHPOSITION] > FuncMax)//over VPosition Max
		{
			FuncBuf[pHPOSITION] = FuncMax;
			#if PRINT_MESSAGE
				printf("HPositon over Max");
			#endif
		}

		Vact = ReadWordIIC563(0x10c) & 0x07ff;
    	//Vact = ReadIIC563(0x10d) & 0x07;
		//Vact <<= 8;
    	//Vact |= ReadIIC563(0x10c);
		NewVp = FuncBuf[pVPOSITION];
		#if PRINT_MESSAGE
			printf("VP_Start = %d\n",FuncBuf[pVPOSITION]);
			printf("HP_Start = %d\n",FuncBuf[pHPOSITION]);
		#endif
			
		if(((FuncBuf[pVPOSITION] > 0x40) || ((FuncBuf[pHPOSITION]>>1)  > (FuncBuf[pCLOCK]-Hresolution))||(Vact < 340))&&(SyncMode != 3))
		//if((FuncBuf[pVPOSITION] > 0xff) || ((FuncBuf[pHPOSITION]>>1) > (FuncBuf[pCLOCK]-Hresolution)))
		{
			Abort = 1;			// abort
			#if PRINT_MESSAGE
				printf("AutoPosition fail\n");
			#endif
		}
		else
		{
			//if(ResolutionPtr < 4)
			//	{
			//	if(FuncBuf[pVPOSITION] > (VTotal - Vresolution-1))
			//		FuncBuf[pVPOSITION] = VTotal - Vresolution-14;
			//	}
			SetHP();
			if(ResolutionPtr < 5 && Vact > 300)
			{
				if(NewVp >= (Vresolution - Vact) / 2)
					NewVp = NewVp - (Vresolution - Vact) / 2;
				else
				{
					Abort = 1;
					return;
				}
			}
			if(OldVp > NewVp)
			{
				//for(;OldVp>=NewVp;OldVp--)
				//{
				//	FuncBuf[pVPOSITION] = OldVp;
				//	SetVP();
				//}
			}
			else if(OldVp < NewVp)
			{
				for(;OldVp<=NewVp;OldVp++)
				{
					FuncBuf[pVPOSITION] = OldVp;
					SetVP();
				}
			}
			else
			{
				FuncBuf[pVPOSITION] = OldVp;
				SetVP();
			}
		}
	}
	else
	{
		Abort = 1;			// abort
		#if PRINT_MESSAGE
			printf("AutoPosition fail\n");
		#endif
	}
   	// wait for next V pulse coming to latch data
	WaitVblank();
}

void AutoClock()
{
	//preset mode total
	bit FirstDo;
	Byte H_Difference,i,Compare;
	Word H_Ref,H_Act,TempClock;
	#if PRINT_MESSAGE
		printf("AutoClock\n");
	#endif
	TempClock = FuncBuf[pCLOCK];
	if(VTotal > (Vresolution + 190))	//not full screen
		{
		NonFullScreen = 1;
		#if PRINT_MESSAGE
			printf("Non Full Screen");
		#endif
		return;
		}
	H_Ref = Hresolution;
	if(H_Ref >= FuncBuf[pCLOCK])
		{
		Abort = 1;
		FuncBuf[pCLOCK] = H_Ref + FuncBuf[pHPOSITION];
		SetADC_PLL();
//		return;
		}
	WriteWordIIC563(0x117, H_Ref);
	FirstDo = 0;
	for(i=0;i<20;i++)
	{
		WriteIIC563(0x106,0x01);
	   	LocalTimer = 10;
	   	while((ReadIIC563(0x106) & BIT_0) && LocalTimer != 0)
		{
			CheckModeChange();
			if(Abort)
				return;
		}
		H_Act = ReadWordIIC563(0x110) & 0x0fff;
		//H_Act = ReadIIC563(0x111) & 0x0f;
		//H_Act <<= 8;
		//H_Act |= ReadIIC563(0x110);
		
		// 20040224 Jacky
		if(H_Act < (H_Ref - 124)){
			i = 0xff;
			break;
		}
		//------------------------
		H_Difference = ReadIIC563(0x119);
		Compare = (H_Difference & 0xC0) >> 6;
		//H_Difference = (H_Difference & 0x3F);
		H_Difference = (H_Difference & 0x3F) > AutoClock_Step ? AutoClock_Step : (H_Difference & 0x3f);
		if(Compare == 0){	//H_Act == H_Ref jacky20040326 for AutoPhasebyClock
			if(!FirstDo){
				FirstDo = 1;
				AutoPhaseByClock();
				if(Abort)
					return;
			}
			else
				break;				
		}
		//if(Compare == 0){	//H_Act == H_Ref
		//	break;
		//}
		if(Compare == 1)
		{
			FuncBuf[pCLOCK] += H_Difference;
			if(FuncBuf[pCLOCK] > 2248)
			{
				i = 0xff;
				break;
			}
		}
		if(Compare == 2 || Compare == 3)
		{
			FuncBuf[pCLOCK] -= H_Difference;
			if(FuncBuf[pCLOCK] < H_Ref)
			{
				i = 0xff;
				break;
			}
		}
		SetADC_PLL();
	}
	//printf("Clock divider 0 = %d\n",FuncBuf[pCLOCK]);
	if(i == 0xff)
	{
	#if PRINT_MESSAGE
		printf("None full screen\n");
	#endif
		Abort = 1;
		NonFullScreen = 1;
		return;
	}
	else
	{
	#if PRINT_MESSAGE
		if(i == 20)
			printf("AutoClock fail.\n");
	#endif
		if(abs(FuncBuf[pCLOCK] - TempClock) > (TempClock / 11))
//			FuncBuf[pCLOCK] = TempClock;
			Abort = 1;
		else
			FuncBuf[pCLOCK] = (FuncBuf[pCLOCK] + 2) & 0xfffc;
		
		GetFuncRange(pCLOCK);
		if(FuncBuf[pCLOCK] > FuncMax)//over VPosition Max
		{
			FuncBuf[pCLOCK] = FuncMax;
	#if PRINT_MESSAGE
				printf("Clock over Max");
	#endif
		}
		
		SetADC_PLL();
	}
}

void AutoClockByPhase(bit h)
{
	bit R_L,U_D;
	Byte k,temp;
	Word GoodClk;
	xdata unsigned long MaxMin,Value;
#if PRINT_MESSAGE
		printf("AutoClockByPhase\r\n");
#endif
//	if((ModePoint < UserModeSt)&&(h == 1)){
//		i = 0x104 + (ModePoint * 8);
//		FuncBuf[pCLOCK] = EEP_SyncMap[i];
//		i++;
//		FuncBuf[pCLOCK] <<= 8;
//		FuncBuf[pCLOCK] += EEP_SyncMap[i];
//	}
	if(h == 1)
		LoadPresetModeSettings(2);

	//printf("Phase ok = %d\n",(unsigned short)FuncBuf[pPHASE]);
	GoodClk = FuncBuf[pCLOCK];
	SetADC_PLL();
	WaitSetup(4);
	if(Abort)
		return;
	//Sleep(25);
	MaxMin = CheckPhaseData();
	//printf("Clock Value Original = %x %x\n",(unsigned short)(MaxMin >> 16),(unsigned short)MaxMin);
	temp = TempPhase;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲一区在线电影| 亚洲视频一二三区| 亚洲精品中文在线| 狠狠色丁香久久婷婷综合_中| 色综合久久中文综合久久牛| 久久久影视传媒| 日韩vs国产vs欧美| 欧美色综合久久| 国产精品久久久久一区二区三区共| 日韩和欧美一区二区三区| 99re热视频精品| 国产亚洲成av人在线观看导航| 婷婷综合五月天| 色噜噜偷拍精品综合在线| 国产日韩欧美在线一区| 久久99精品久久久久久动态图| 欧美老女人在线| 一区二区三区四区精品在线视频 | 99国产精品久久久久久久久久| 日韩一区二区精品葵司在线| 亚洲成人av免费| 欧美少妇性性性| 亚洲成人福利片| 色噜噜狠狠色综合欧洲selulu| 亚洲欧洲美洲综合色网| 懂色av中文字幕一区二区三区 | 国产精品免费丝袜| 国产成人精品三级| 国产亚洲精品超碰| 国产大陆亚洲精品国产| 国产日韩欧美制服另类| 国产福利一区在线观看| 欧美国产禁国产网站cc| 成人高清免费观看| 亚洲欧美日韩精品久久久久| 91一区一区三区| 亚洲综合一区二区三区| 欧美日韩免费视频| 日韩黄色小视频| 久久综合久久综合亚洲| 国产91高潮流白浆在线麻豆| 亚洲国产经典视频| 色先锋aa成人| 午夜免费久久看| 精品久久久久久久久久久久包黑料| 韩国v欧美v亚洲v日本v| 国产精品美女久久久久久久久 | 26uuu久久天堂性欧美| 国模娜娜一区二区三区| 国产精品国产三级国产aⅴ入口| a级高清视频欧美日韩| 亚洲精品成a人| 欧美一区二区三区的| 激情综合色综合久久| 国产精品久久久久久久久快鸭| 色狠狠桃花综合| 喷白浆一区二区| 国产精品久久午夜| 欧美色综合久久| 国产精品一区二区免费不卡| 亚洲啪啪综合av一区二区三区| 欧美日本一道本| 国产一区 二区| 亚洲一卡二卡三卡四卡| 欧美精品一区二区三区在线播放| 91原创在线视频| 久久99热国产| 亚洲男人的天堂在线观看| 正在播放亚洲一区| 不卡的av电影在线观看| 午夜久久久久久| 国产欧美综合在线| 91精品国产欧美一区二区| 成人免费的视频| 美女视频网站黄色亚洲| 亚洲欧美电影院| 久久久亚洲精品一区二区三区| 欧美性生活影院| 成人自拍视频在线| 日本成人在线电影网| 亚洲免费伊人电影| 精品国产91久久久久久久妲己| 91国偷自产一区二区使用方法| 国产一区二区伦理片| 日韩中文字幕亚洲一区二区va在线| 亚洲国产精品成人综合色在线婷婷 | 欧美日韩五月天| 成人午夜私人影院| 久久国产精品色婷婷| 亚洲国产成人porn| 亚洲裸体在线观看| 国产精品欧美一区二区三区| 日韩精品一区二区三区蜜臀| 欧美日韩国产综合久久| 波多野结衣精品在线| 精品一区二区在线看| 午夜精彩视频在线观看不卡| 亚洲乱码国产乱码精品精的特点| 2021国产精品久久精品| 日韩一区二区免费视频| 欧美精品三级日韩久久| 欧美日本免费一区二区三区| 一本色道久久综合亚洲91| www.性欧美| 成人小视频在线观看| 国产成人精品三级| 国产成人免费视频网站| 国产乱子轮精品视频| 精品一区二区免费看| 男人操女人的视频在线观看欧美| 丝瓜av网站精品一区二区| 夜色激情一区二区| 亚洲3atv精品一区二区三区| 亚洲午夜免费福利视频| 亚洲一级片在线观看| 亚洲国产精品一区二区久久| 亚洲国产成人91porn| 亚洲一本大道在线| 石原莉奈一区二区三区在线观看| 偷拍日韩校园综合在线| 蜜臂av日日欢夜夜爽一区| 日产国产欧美视频一区精品| 奇米精品一区二区三区在线观看一| 日本亚洲三级在线| 国产一区二区三区在线看麻豆| 国产精品自拍三区| 成人av网站大全| 欧美特级限制片免费在线观看| 欧美日韩一区中文字幕| 91精品国产全国免费观看| 精品日韩欧美在线| 欧美经典一区二区三区| 成人欧美一区二区三区白人| 亚洲综合成人在线视频| 日韩福利视频导航| 国产一区 二区 三区一级| 99国产欧美另类久久久精品 | 国产成人亚洲综合色影视| 99视频国产精品| 欧美伊人精品成人久久综合97| 日韩一区二区影院| 国产精品毛片高清在线完整版| 亚洲精品乱码久久久久久久久| 午夜国产不卡在线观看视频| 国产在线播放一区三区四| 91丨porny丨中文| 日韩午夜精品电影| 国产精品久久久爽爽爽麻豆色哟哟 | 国产精品久久久久影院| 亚洲大尺度视频在线观看| 国产一区二区视频在线播放| 91香蕉视频在线| 精品少妇一区二区三区| 国产欧美精品一区二区色综合| 夜色激情一区二区| 国产二区国产一区在线观看| 欧洲精品在线观看| 国产亚洲欧美色| 五月天视频一区| 99re在线视频这里只有精品| 欧美一区二区大片| 亚洲欧美电影院| 国产精一品亚洲二区在线视频| 欧美伊人精品成人久久综合97| 国产午夜精品一区二区| 日本一区中文字幕| 在线精品视频免费播放| 久久欧美中文字幕| 日韩激情一区二区| 在线亚洲欧美专区二区| 中文字幕免费在线观看视频一区| 日韩成人免费电影| 欧美日韩免费观看一区二区三区| 国产精品三级电影| 国产美女在线精品| 欧美一区二区大片| 首页亚洲欧美制服丝腿| 91成人看片片| 亚洲乱码国产乱码精品精小说| 国产高清在线精品| 26uuu成人网一区二区三区| 午夜电影网一区| 在线观看成人小视频| 亚洲欧美另类久久久精品2019| 国产**成人网毛片九色| 久久久蜜桃精品| 国产在线观看一区二区| 精品国产一区二区精华| 日韩av一二三| 日韩一区二区不卡| 日本午夜一区二区| 日韩一区二区在线看片| 青青草伊人久久| 日韩三级在线免费观看| 免费成人在线观看视频| 欧美大片一区二区| 韩国中文字幕2020精品| 337p日本欧洲亚洲大胆色噜噜| 青娱乐精品视频| 26uuu久久综合|