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

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

?? dvstest.c

?? 2440 cpu test
?? C
字號:
//===================================================================
// File Name : Dvstest.c
// Function  : S3C2440A 
// Date      : Feb 02, 2004
// Version   : 0.0
// History
//  0.00: Feb.xx.2004:DonGo: first draft version for DVS.
//===================================================================

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "userlib.h"

#include "lcdlib.h"
#include "glib.h"
#include "lcd.h"

#include "dvstest.h"



#define BIT_DVS_ON	(1<<12)
#define DVS_VOLTL	100
#define DVS_VOLTH	120
// regulator voltage out settling time = 28us/0.1V.
// 0.2V:56us, 0.3V:84us, 0.4V:112us, 0.5V:140us
// 0.25V:70us, 0.35V:98us, 0.45V:126us, 0.55V:154us.

extern U32 FCLK1;
extern void CLKDIV124(void);
extern void CLKDIV144(void);


U32 Vcount=0, Timer_cnt0=0;
short int Idle_flag=0;	// assume,  0:Normal, 1:Idle.
short int Div_flag=124;
short int intr_flag=0;

// one-timer clock= 81 usec. 
U32 timer_val_arr[4] = {296, 617, 802, 1284};
//U32 timer_val_arr[4] = {1284, 1284, 1284, 1284};
// 296, 617, 802, 1284 -> 24ms, 50ms, 65ms, 104ms for each.

short int timer_select=0;

#define	XADDR	_NONCACHE_STARTADDRESS
#define	IDLE_EN		0	// enable idle at timer interrupt.

extern U32 Mdiv, Pdiv, Sdiv, Fclk, Hclk, Pclk, Hdivn, Pdivn, Hclk_Ratio, Pclk_Ratio, Ref_Cnt;

void Dvs_Test(void)
{
	volatile int i, n;

	Uart_Printf("Dvs test.\n");

	rGPGCON = (rGPGCON & ~(3<<22)) | (1<<22);	// set GPG11 output for idle state.
	
	rBANKSIZE = (rBANKSIZE & ~(3<<4)) | (0<<4) | (1<<7);	//SCKE_EN, SCLK_EN = disable.

	Uart_Printf("Change core speed to 266MHz.\n");
	#if FIN==12000000
	ChangeClockDivider(13, 12);	// 1:3:6
		#if CPU2440A==1
		ChangeMPllValue(127,2,1);	// 406MHz
		#else						// 2440X
		ChangeMPllValue(127,2,0);	// 406MHz
		#endif
	#else	// 16.9344Mhz
		ChangeClockDivider(13, 12);
		#if CPU2440A==1
		ChangeMPllValue(110,3,1);	// 400MHz
		#else						// 2440X
		ChangeMPllValue(110,3,0);	// 400MHz
		#endif
	#endif
	
	Calc_Clock(1);
	
	UPDATE_REFRESH(Hclk);
	Uart_Init(Pclk, 115200);

	Uart_Printf("Check Clkout0:FCLK, Clkout1:HCLK.\n");
	// Clkout0: FCLK.	
	Clk0_Enable(2);
	// Clkout1: HCLK.
	Clk1_Enable(3);
	
	
#if ADS10==TRUE	
	srand(0);
#endif
	Led_Display(0);	// clear all leds.
	
	Timer_Setting();
	Set_Lcd_Tft_16Bit_240320_Dvs();

	Uart_Printf("Tcnt, Vcnt, Idle_flag.\n");
	Uart_Printf("%8d,%8d,%1d\n", Timer_cnt0, Vcount, Idle_flag);
	
	while(1) {
		//Uart_Printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
		Uart_Printf("%8d,%8d,%1d\n", Timer_cnt0, Vcount, Idle_flag);
		for(i=0; i<1024*32; i+=4) {
			//*(U32 *)(XADDR+i) = i;
			//*(U32 *)(XADDR+i);
		}
		if(Uart_GetKey()==ESC_KEY) break;
	}

	rINTMSK = BIT_ALLMSK;
}


////////////////////////////// HCLK change test start  ///////////////////////////////

//========================================================
// Timer Interrupt Request 
//========================================================
void __irq Timer0_intr(void)
{
	int i;
	
	//if(Timer_cnt0%2) Led_Onoff(LED1,ON);
	//else Led_Onoff(LED1,OFF);

	ClearPending(BIT_TIMER0)

	if(rLCDSRCPND & 2) {
		rLCDSRCPND=2; // Clear LCD SUB Interrupt source pending
		rLCDINTPND=2; // Clear LCD SUB Interrupt pending
		ClearPending(BIT_LCD);
	}

#if ADS10==TRUE
	i= (rand()%700) + 61;	// 0.081ms/cnt
#else
	i= 370;	// 0.081ms/cnt -> 370cnt==300ms.
#endif
	
	rTCNTB0 = i;
	//rTCNTB0 = timer_val_arr[Timer_cnt0%4];

	// Load timer cnt value
	rTCON = 1<<3| 1<<1;
	// Timer start.
	rTCON = 1<<3| 1<<0;

	if(Timer_cnt0%2) {
		Idle_flag = 1;	// Idle mode
		rINTMSK &= ~(BIT_LCD);	// unmask.
		#if IDLE_EN==1
			Led_Onoff(LED4, OFF);
			rCLKCON |= 1<<2;	// Enter Idle mode.
		    for(i=0;i<10;i++);
			//wait until S3C2400X enters IDLE mode.
	        //wait EINT0 interrupt or RTC alarm interrupt
	        rCLKCON&=~(1<<2);
		Led_Onoff(LED4, ON);
    		//turn-off IDLE bit. IDLE bit should be turned off after wake-up.
    	#endif
	} else {
		Idle_flag = 0;	// Normal mode
		rINTMSK &= ~(BIT_LCD);	// unmask.
	}

	Timer_cnt0++;
}


void __irq Lcd_Int_Frame_ForDvs(void)
{
	int i;
	
	rINTMSK |= (BIT_LCD);
	
	if((rLCDCON5 & (0x3<<15))) 
	{	// if Not VSYNC period

		Uart_Printf("-");
	} 
	else 
	{		// if in VSYNC period
		if( Idle_flag==1) 
		{	// Idle -> Clkdiv=1:4:4
			rLCDCON1 &= ~(0x1);	// ENVID off.

			#if CPU2440A==1
			rCAMDIVN = (rCAMDIVN & ~(3<<8)) | (1<<8);	// 1:3:6 -> 1:6:12
			rCLKDIVN &= ~(1<<0);						// 1:6:12 -> 1:6:6
			#else 
			CLKDIV144();
			#endif
			#if CPU2440A==1
			rCAMDIVN |= BIT_DVS_ON;		// (1<<12), DVS off.
			rGPGDAT &= ~(1<<11);
			#endif
			Max1718_Set(DVS_VOLTL);
			UPDATE_REFRESH(Hclk/2);
			rLCDCON1 = (rLCDCON1 & ~(0x3ff<<8)) | (4<<8) | 1;	// ENVID on. 5MHz VCLK, 60fps

			Vcount++;
   
			rLCDSRCPND=2; // Clear LCD SUB Interrupt source pending
			rLCDINTPND=2; // Clear LCD SUB Interrupt pending
			ClearPending(BIT_LCD);

			if(rSRCPND & BIT_TIMER0) {
				rSRCPND = BIT_TIMER0;	   //Clear pending bit
				rINTPND = BIT_TIMER0;
			}

			#if IDLE_EN==1
			rCLKCON |= 1<<2;	// Enter Idle mode.
			for(i=0;i<10;i++);
			//wait until S3C2400 enters IDLE mode.	
			//wait EINT0 interrupt or RTC alarm interrupt
			rCLKCON&=~(1<<2);
			//turn-off IDLE bit. IDLE bit should be turned off after wake-up.
	    		#endif
		} 
		else 	// If Normal mode...
		{	
			rLCDCON1 &= ~(0x1);	// ENVID off.

			Max1718_Set(DVS_VOLTH);
			for(i=0; i<2000;i++) rGSTATUS0;

			UPDATE_REFRESH(Hclk);

			#if CPU2440A==1
			rCAMDIVN &= ~BIT_DVS_ON;	// (0<<12), DVS off, FCLK=MPLLout
			rGPGDAT |= (1<<11);
			#endif

			#if CPU2440A==1
			rCLKDIVN |= (1<<0);						// 1:6:6 -> 1:6:12
			rCAMDIVN = (rCAMDIVN & ~(3<<8));			// 1:6:12 -> 1:3:6
			#else
			CLKDIV124();	// Normal -> Clkdiv=1:2:4
			#endif
			rLCDCON1 = (rLCDCON1 & ~(0x3ff<<8)) | (9<<8) | 1;	// ENVID on.5MHz VCLK, 60fps

			Vcount++;
   
			rLCDSRCPND=2; // Clear LCD SUB Interrupt source pending
			rLCDINTPND=2; // Clear LCD SUB Interrupt pending
			ClearPending(BIT_LCD);

			if(rSRCPND & BIT_TIMER0) {
				rSRCPND = BIT_TIMER0;	   //Clear pending bit
				rINTPND = BIT_TIMER0;
			}
		}
	} // endof if((rLCDCON5 & (0x3<<15))) {
}
////////////////////////////// HCLK change test end  ///////////////////////////////

void Set_Lcd_Tft_16Bit_240320_Dvs(void)
{
    int i,j,k;
	
	Uart_Printf("[Set LCD]\n");
	
    Lcd_Port_Init();
    Lcd_Init(MODE_TFT_16BIT_240320);
    Glib_Init(MODE_TFT_16BIT_240320);
	Lcd_Lcc3600Enable(); // Enable LCC3600
    Lcd_PowerEnable(0, 1);
    Lcd_EnvidOnOff(1);
    
    Glib_ClearScr(0, MODE_TFT_16BIT_240320);
    Glib_FilledRectangle(0,0,119,159,0xf800);
    Glib_FilledRectangle(120,0,239,159,0x07e0);
    Glib_FilledRectangle(0,160,119,320,0x001f);
    Glib_FilledRectangle(120,160,239,320,0xffff);
    Glib_FilledRectangle(100,100,150,200,0x5555);

    rLCDCON1 &= ~(0x1);	// ENVID off.
	rLCDCON1 = (rLCDCON1 & ~(0x3ff<<8)) | (9<<8) | 1;	// ENVID on. 5MHz 60fps

	// ON PWREN signal
	rLCDCON5 = (rLCDCON5 & ~(1<<3)) ;	// PWREN disable
	rGPGCON = (rGPGCON & ~(0x3<<8)) | 0x1<<8;	// GPG4, PWR_EN -> Output.
	rGPGDAT&=(~(1<<4)); // GPG4=Low
	Delay(50); // GPG4=Low
	rGPGDAT|=(1<<4); //GPG4=High

	//--------LCD frame interrupt setting ------------------------------------START
	pISR_LCD=(unsigned)Lcd_Int_Frame_ForDvs;
	rINTMSK &= ~(BIT_LCD);
	rLCDINTMSK=(1<<2)|(0<<1)|(1); // 8Words Trigger Level,Unmask Frame int,mask Fifo int
	//--------LCD frame interrupt setting ------------------------------------END

}


void Led_Onoff(int Led_No, int On_Off)
{
	// GPF7  GPF6   GPF5   GPF4
	//nLED_8 nLED4 nLED_2 nLED_1
	if(On_Off==ON) rGPFDAT = (rGPFDAT & ~Led_No);
	else rGPFDAT = (rGPFDAT | Led_No);
}

void Timer_Setting(void)
{
	float cnt_val=0.0;

    Uart_Printf("[ Timer 0 Interrupt setting]\n");

	// Uart_Printf("[Timer interval: %4.1f, %4.1f, %4.1f, %4.1f[ms].\n", \
	// timer_val_arr[0]*0.081, timer_val_arr[1]*0.081, timer_val_arr[2]*0.081, timer_val_arr[3]*0.081);
	// 296, 617, 802, 1284 -> 24ms, 50ms, 65ms, 104ms for eac

	rGPBCON = rGPBCON& ~(0x03) | 0x2;
	rCLKCON |= 1<<8;	// PWM timer PCLK clock enable.

    pISR_TIMER0 = (int)Timer0_intr;
	// Timer interupt start.
	rINTMSK &= ~BIT_TIMER0;
	
	rTCFG0 = 0xff;		// Prescaler0 = 0xff=256.
	// Timer input clock freq = PCLK/(Prescaler0+1)/divider value.
	// where, PCLK = 50.7MHz

	rTCFG1 = 0<<20 | 3<<0;	// MUX0 = 1/16

	// Timer input clock frequency = PCLK/(prescaler value+1)/(divider value)
	// 1clock = 81us.
    rTCNTB0 = timer_val_arr[0];
    rTCMPB0 = 0;

	// Load timer cnt value
	rTCON = 1<<3| 1<<1;

	// Timer start.
	rTCON = 1<<3| 1<<0;

}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区中文字幕| 91看片淫黄大片一级| 国产精品系列在线观看| 欧美性三三影院| 久久只精品国产| 日韩一区精品视频| 91年精品国产| 2020国产精品自拍| 午夜精品aaa| 一本久道久久综合中文字幕| 日韩精品中文字幕一区| 亚洲电影欧美电影有声小说| 国产成+人+日韩+欧美+亚洲| 69精品人人人人| 亚洲欧洲日韩在线| 国产91在线观看丝袜| 欧美一区二区三区免费大片| 亚洲精品综合在线| 91在线免费看| 国产精品欧美一级免费| 国产一区视频在线看| 91麻豆精品国产91久久久资源速度 | **欧美大码日韩| 极品销魂美女一区二区三区| 欧美日韩一级视频| 亚洲一区二区美女| 欧洲激情一区二区| 一区二区三区在线影院| 97精品久久久久中文字幕| 欧美国产精品中文字幕| 国产精品小仙女| 久久久久久久久久看片| 精品亚洲aⅴ乱码一区二区三区| 欧美老女人第四色| 亚洲国产wwwccc36天堂| 欧美日韩一区 二区 三区 久久精品| 中文字幕亚洲不卡| 不卡一区二区在线| 亚洲欧美日韩在线| 欧美日韩视频第一区| 亚洲成人在线免费| 欧美高清精品3d| 日韩av电影天堂| 日韩精品一区在线| 国产综合色视频| 久久久久97国产精华液好用吗| 韩国三级中文字幕hd久久精品| 久久久久久综合| 国产.欧美.日韩| 国产精品色哟哟网站| 99精品视频中文字幕| 亚洲欧美日韩精品久久久久| 91香蕉视频污| 天天综合天天综合色| 日韩视频国产视频| 成人免费毛片app| 一区二区三区中文字幕电影 | 亚洲日本在线视频观看| 欧美综合视频在线观看| 天天综合色天天综合| 国产亚洲一本大道中文在线| 91免费看`日韩一区二区| 亚洲午夜私人影院| 久久综合色8888| av激情成人网| 男男gaygay亚洲| 国产欧美日韩在线观看| 91丨九色porny丨蝌蚪| 亚洲成人av福利| 亚洲国产成人午夜在线一区| 91国在线观看| 久久国产夜色精品鲁鲁99| 国产亚洲精品资源在线26u| 在线观看中文字幕不卡| 精品一区二区在线播放| 中文字幕一区二区三| 91精品国产一区二区三区蜜臀 | 日本成人在线网站| 国产精品卡一卡二| 91 com成人网| 99久久99久久免费精品蜜臀| 麻豆专区一区二区三区四区五区| 国产精品三级av在线播放| 欧美精品 日韩| aaa欧美色吧激情视频| 人禽交欧美网站| 亚洲视频你懂的| 欧美成人猛片aaaaaaa| 在线一区二区视频| 成人黄色一级视频| 蜜臀av在线播放一区二区三区| 国产精品亲子乱子伦xxxx裸| 日韩一区二区免费电影| 91麻豆成人久久精品二区三区| 国产一区二区三区在线观看免费视频 | 日本怡春院一区二区| 亚洲精品自拍动漫在线| 中文字幕精品一区二区三区精品| 日韩三级免费观看| 欧美日韩美少妇| 色综合天天综合在线视频| 国产精品一区二区视频| 美国十次综合导航| 天堂资源在线中文精品| 亚洲精品国产高清久久伦理二区| 欧美韩国日本综合| 国产色综合久久| 国产亚洲综合在线| 久久久亚洲精品石原莉奈| 精品久久久久香蕉网| 欧美一区二区福利在线| 欧美一区二区三区喷汁尤物| 欧美精品在线视频| 欧美性受xxxx| 欧美日韩国产一级二级| 欧美精品乱人伦久久久久久| 欧美中文字幕一区二区三区亚洲| 91免费看视频| 欧洲人成人精品| 欧美视频一区二区三区在线观看| 91福利在线看| 欧美精品自拍偷拍动漫精品| 91精品蜜臀在线一区尤物| 欧美一区二区在线免费观看| 日韩欧美在线影院| 久久在线观看免费| 欧美国产禁国产网站cc| 亚洲欧美怡红院| 亚洲二区在线视频| 日本欧美一区二区| 国产米奇在线777精品观看| 国产精品伊人色| 99re成人精品视频| 7799精品视频| 欧美精品一区二区在线播放| 久久精品一区蜜桃臀影院| 中文字幕永久在线不卡| 亚洲综合区在线| 麻豆精品一区二区| 丰满岳乱妇一区二区三区| 91欧美一区二区| 日韩一区二区精品葵司在线| 久久综合久久99| 亚洲精品写真福利| 日本三级亚洲精品| 成人av手机在线观看| 欧美日韩亚洲高清一区二区| 欧美成人在线直播| 国产精品久久久久久久久久免费看| 亚洲视频在线一区| 久久99日本精品| 99re热视频精品| 精品国产不卡一区二区三区| 中文字幕一区二区日韩精品绯色| 五月婷婷激情综合| 大白屁股一区二区视频| 欧美日韩久久一区| 国产精品美女一区二区在线观看| 一区二区三区在线免费播放| 久久精品国产77777蜜臀| 色婷婷综合中文久久一本| 欧美成人激情免费网| 亚洲精品亚洲人成人网| 国产一区在线观看麻豆| 欧美日韩国产免费| 亚洲婷婷综合久久一本伊一区 | 亚洲制服丝袜在线| 国产成人aaa| 宅男噜噜噜66一区二区66| 中文字幕在线免费不卡| 国精品**一区二区三区在线蜜桃 | 国产成人超碰人人澡人人澡| 欧美视频一区在线| 中文字幕综合网| 国产一区二区三区免费| 欧美久久一二区| 一区二区欧美在线观看| 成人午夜又粗又硬又大| 欧美大片国产精品| 性感美女极品91精品| 波多野结衣中文字幕一区二区三区| 91麻豆精品国产91久久久久久久久| 国产精品国产三级国产普通话蜜臀 | 国产一区二区三区香蕉| 91精品国产欧美一区二区成人| 亚洲精品免费播放| www.欧美色图| 久久精品男人天堂av| 国产一区二区三区最好精华液| 欧美一级在线视频| 天堂va蜜桃一区二区三区| 欧美日韩综合在线免费观看| 1000部国产精品成人观看| 岛国精品一区二区| 欧美国产日韩亚洲一区| 国产一区二区按摩在线观看| 日韩女同互慰一区二区| 日本sm残虐另类| 日韩亚洲欧美一区二区三区| 日本不卡中文字幕|