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

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

?? display.c

?? at91rm9200測試lcd dispaly 的程序
?? C
字號:
#include "AT91RM9200.h"
#include "display.h"







//use NCS2
//Crt:640*480   LCD:800*480
void Display_Init(char displaysel)
{

		 //Init EBI Reg
		 AT91C_BASE_SMC2->SMC2_CSR[2] = (AT91C_SMC2_NWS & 0x4) | AT91C_SMC2_WSEN | (AT91C_SMC2_TDF & 0x100) | AT91C_SMC2_DBW;

 		 // enable host interface 
		 LREG_MISC = 0x00;  
		 
     // First disable all output devices 
     LREG_DISPLAY_MODE=0x00;
     
     // General I/O Pins Registers 
     LREG_GPIO_CONFIG=0x00;
     LREG_GPIO_CTRL=0x00;

     // Clock Configuration Registers 
     LREG_MEM_CLOCK_CFG=0x01;
     LREG_LCD_PCLK_CFG=0x00;
     LREG_CRTTV_PCLK_CFG=0x00;  
     LREG_MPCLK_CFG=0x00;
     LREG_CPU2MEM_WAIT_SEL=0x02;  

     // Memory Configuration Registers 
     LREG_MEM_CFG=0x00;
     LREG_DRAM_REFRESH=0x05;
     LREG_DRAM_TIMINGS_CTRL0=0x12;
     LREG_DRAM_TIMINGS_CTRL1=0x02;

     // Panel Configuration Registers 
     LREG_PANEL_TYPE=0x25;
     LREG_MOD_RATE=0x00;
     LREG_LCD_HDP=0x63;//800
     LREG_LCD_HNDP=0x12;
     LREG_TFT_FPLINE_START=0x01;
     LREG_TFT_FPLINE_PULSE=0x0b;
     LREG_LCD_VDP0=0xdf;//480
     LREG_LCD_VDP1=0x01;
     LREG_LCD_VNDP=0x2c;
     LREG_TFT_FPFRAME_START=0x0b;
     LREG_TFT_FPFRAME_PULSE=0x01;

     // LCD Display Mode Registers 
     LREG_LCD_DISPLAY_MODE=0x05;
     LREG_LCD_MISC=0x01;
     LREG_LCD_START_ADDR0=0x00;
     LREG_LCD_START_ADDR1=0x00;
     LREG_LCD_START_ADDR2=0x00;
     LREG_LCD_MEM_ADDR_OFFSET0=0x20;
     LREG_LCD_MEM_ADDR_OFFSET1=0x03;
     LREG_LCD_PIXEL_PANNING=0x00;
     LREG_LCD_FIFO_HIGH_THRESHOLD=0x00;
     LREG_LCD_FIFO_LOW_THRESHOLD=0x00;

     // CRT/TV Configuration Registers 
     LREG_CRTTV_HDP=0x4f;//640
     LREG_CRTTV_HNDP=0x13;
     LREG_CRTTV_HRTC_START=0x01;
     LREG_CRT_HRTC_PULSE=0x0b;
     LREG_CRTTV_VDP0=0xdf;//480
     LREG_CRTTV_VDP1=0x01;
     LREG_CRTTV_VNDP=0x2b;
     LREG_CRTTV_VRTC_START=0x09;
     LREG_CRT_VRTC_PULSE=0x01;
     LREG_TV_OUTPUT_CTRL=0x08;

     // CRT/TV Display Mode Registers 
     LREG_CRTTV_DISPLAY_MODE=0x05;
     LREG_CRTTV_START_ADDR0=0x00;
     LREG_CRTTV_START_ADDR1=0x00;
     LREG_CRTTV_START_ADDR2=0x00;
     LREG_CRTTV_MEM_ADDR_OFFSET0=0x80;
     LREG_CRTTV_MEM_ADDR_OFFSET1=0x02;
     LREG_CRTTV_PIXEL_PANNING=0x00;
     LREG_CRTTV_FIFO_HIGH_THRESHOLD=0x00;
     LREG_CRTTV_FIFO_LOW_THRESHOLD=0x00;

     // LCD Ink/Cursor Registers 
     LREG_LCD_INK_CURS_CTRL=0x00;
     LREG_LCD_INK_CURS_START_ADDR=0x01;
     LREG_LCD_CURSOR_X_POS0=0x00;
     LREG_LCD_CURSOR_X_POS1=0x00;
     LREG_LCD_CURSOR_Y_POS0=0x00;
     LREG_LCD_CURSOR_Y_POS1=0x00;
     LREG_LCD_INK_CURS_BLUE0=0x00;
     LREG_LCD_INK_CURS_GREEN0=0x00;
     LREG_LCD_INK_CURS_RED0=0x00;
     LREG_LCD_INK_CURS_BLUE1=0x1f;
     LREG_LCD_INK_CURS_GREEN1=0x3f;
     LREG_LCD_INK_CURS_RED1=0x1f;
     LREG_LCD_INK_CURS_FIFO=0x00;

     // CRT/TV Ink/Cursor Registers 
     LREG_CRTTV_INK_CURS_CTRL=0x00;
     LREG_CRTTV_INK_CURS_START_ADDR=0x01;
     LREG_CRTTV_CURSOR_X_POS0= 0x00;
     LREG_CRTTV_CURSOR_X_POS1= 0x00;
     LREG_CRTTV_CURSOR_Y_POS0= 0x00;
     LREG_CRTTV_CURSOR_Y_POS1= 0x00;
     LREG_CRTTV_INK_CURS_BLUE0= 0x00;
     LREG_CRTTV_INK_CURS_GREEN0= 0x00;
     LREG_CRTTV_INK_CURS_RED0= 0x00;
     LREG_CRTTV_INK_CURS_BLUE1= 0x1f;
     LREG_CRTTV_INK_CURS_GREEN1= 0x3f;
     LREG_CRTTV_INK_CURS_RED1= 0x1f;
     LREG_CRTTV_INK_CURS_FIFO= 0x00;

     // BitBlt Configuration Registers 
     LREG_BITBLT_CTRL0= 0x00;
     LREG_BITBLT_CTRL1= 0x00;
     LREG_BITBLT_ROP_CODE= 0x00;
     LREG_BITBLT_OPERATION= 0x00;
     LREG_BITBLT_SRC_START_ADDR0= 0x00;
     LREG_BITBLT_SRC_START_ADDR1= 0x00;
     LREG_BITBLT_SRC_START_ADDR2= 0x00;
     LREG_BITBLT_DEST_START_ADDR0= 0x00;
     LREG_BITBLT_DEST_START_ADDR1= 0x00;
     LREG_BITBLT_DEST_START_ADDR2= 0x00;
     LREG_BITBLT_MEM_ADDR_OFFSET0= 0x00;
     LREG_BITBLT_MEM_ADDR_OFFSET1= 0x00;
     LREG_BITBLT_WIDTH0= 0x00;
     LREG_BITBLT_WIDTH1= 0x00;
     LREG_BITBLT_HEIGHT0= 0x00;
     LREG_BITBLT_HEIGHT1= 0x00;
     LREG_BITBLT_BACKGND_COLOR0= 0x00;
     LREG_BITBLT_BACKGND_COLOR1= 0x00;
     LREG_BITBLT_FOREGND_COLOR0= 0x00;
     LREG_BITBLT_FOREGND_COLOR1= 0x00;

     // Look-Up Table Registers 
     LREG_LUT_MODE= 0x00;
     LREG_LUT_ADDR= 0x00;
     LREG_LUT_DATA=0x00;

     // Power Save Configuration Registers 
     LREG_PWR_SAVE_CFG= 0x00;
     LREG_PWR_SAVE_STATUS=0x00;

     // Miscellaneous Registers 
     LREG_CPU2MEM_WATCHDOG=0x00;

     // Common Display Mode Register 
     if(displaysel==1)
     {
     		LREG_DISPLAY_MODE=0x01;
     		AT91C_BASE_SYS->PIOC_PER |= 0x00004000;	
		 		AT91C_BASE_SYS->PIOC_OER |= 0x00004000;	
	   		AT91C_BASE_SYS->PIOC_SODR |= 0x00004000;	     
     }
     else 
     {
     		LREG_DISPLAY_MODE=0x02;
     		AT91C_BASE_SYS->PIOC_PER |= 0x00004000;	
		 		AT91C_BASE_SYS->PIOC_OER |= 0x00004000;	
	   		AT91C_BASE_SYS->PIOC_CODR |= 0x00004000;	     
     }
     

    
}

void Display_Fill_Buff(unsigned short usColor,char display)
{
	unsigned int count,count1;
	unsigned short *lcd_addr;
	
	if(display==1)count1=384000;
	else count1=307200;
	lcd_addr=(unsigned short *)REG_LCD_DATA;
	for(count=0;count<count1;count++)	
	{
		*lcd_addr=usColor;
		lcd_addr++;
	}
}


void Display_Draw_Line(char display)
{
	unsigned short x;
	unsigned short y;
	unsigned int count;
	unsigned short *lcd_addr,*temp3;
	float temp1,temp2;
	
	if(display==1)
	{
		x=800;
		y=480;
	}
	else 
	{
		x=640;
		y=480;
	}
	lcd_addr=(unsigned short *)REG_LCD_DATA;//下橫線
	lcd_addr+=(x*10+10);
	for(count=0;count<(x-20);count++)	
	{
		*lcd_addr=0x0000;
		lcd_addr++;
	}
	
	lcd_addr=(unsigned short *)REG_LCD_DATA;//上橫線
	lcd_addr+=(x*(y-10)+10);
	for(count=0;count<(x-20);count++)	
	{
		*lcd_addr=0x0000;
		lcd_addr++;
	}	
	
	lcd_addr=(unsigned short *)REG_LCD_DATA;//右豎線
	lcd_addr+=(x*10+10);
	for(count=0;count<(y-20);count++)	
	{
		*lcd_addr=0x0000;
		lcd_addr+=x;
	}		
	
	lcd_addr=(unsigned short *)REG_LCD_DATA;//左豎線
	lcd_addr+=(x*10+x-10);
	for(count=0;count<(y-20);count++)	
	{
		*lcd_addr=0x0000;
		lcd_addr+=x;
	}			
	
	lcd_addr=(unsigned short *)REG_LCD_DATA;//左斜線
	lcd_addr+=(x*10+10);
	temp1=(float)(x-20)/(float)(y-20);temp2=0;
	for(count=0;count<(y-20);count++)	
	{
		temp2+=temp1;
		temp3=lcd_addr;
		lcd_addr+=(unsigned short)temp2;		
		*lcd_addr=0x0000;
		lcd_addr=temp3;
		lcd_addr+=x;
	}		
			
	lcd_addr=(unsigned short *)REG_LCD_DATA;//右斜線
	lcd_addr+=(x*10+(x-10));
	temp1=(float)(x-20)/(float)(y-20);temp2=0;
	for(count=0;count<(y-20);count++)	
	{
		temp2+=temp1;
		temp3=lcd_addr;
		lcd_addr-=(unsigned short)temp2;		
		*lcd_addr=0x0000;
		lcd_addr=temp3;
		lcd_addr+=x;
	}				
	
}


void Display_Test(void)
{
	char tmp,display=1;
	
	//Close backlight
  AT91C_BASE_SYS->PIOC_PER |= 0x00004000;	
	AT91C_BASE_SYS->PIOC_OER |= 0x00004000;	
	AT91C_BASE_SYS->PIOC_CODR |= 0x00004000;
	AT91F_DBGU_Printk("\n\r*****************Display Test*******************\n\r");
	AT91F_DBGU_Printk("Input 1:LCD Test 2:CRT Test Other Key:Quit Test\n\r");	
	tmp=AT91F_DBGU_GetChar();
	switch(tmp)
	{

		case '1'://Lcd Display
			AT91F_DBGU_Printk("LCD Test\n\r");
			Display_Init(1);
			display=1;
			break;	
		case '2'://Crt Display
			AT91F_DBGU_Printk("CRT Test\n\r");
			Display_Init(2);
			display=2;
			break;	
		default://Quit
			AT91F_DBGU_Printk("Display Test Is Quit\n\r");
			return;			
	}

	Display_Fill_Buff(0xFFFF,display);
		
	AT91F_DBGU_Printk("\n\rTest Select\n\r");	
	AT91F_DBGU_Printk("Input 0:Quit 1:Red Fill 2:Green Fill 3:Blue Fill 4:Black Fill 5:White Fill 6:Draw Line\n\r");		
	while(1)
	{
		tmp=AT91F_DBGU_GetChar();
		switch(tmp)
		{
			case '0':
					AT91F_DBGU_Printk("\n\rTest Is Quit\n\r");	
				return;
			case '1':
				Display_Fill_Buff(0xF800,display);
				AT91F_DBGU_Printk("\n\rRed Fill Test\n\r");	
				break;				
			case '2':
				Display_Fill_Buff(0x7E0,display);		
				AT91F_DBGU_Printk("\n\rGreen Fill Test\n\r");	
				break;		
			case '3':
				Display_Fill_Buff(0x1F,display);	
				AT91F_DBGU_Printk("\n\rBlue Fill Test\n\r");	
				break;		
			case '4':
				Display_Fill_Buff(0,display);
				AT91F_DBGU_Printk("\n\rBlack Fill Test\n\r");		
				break;		
			case '5':
				Display_Fill_Buff(0xFFFF,display);
				AT91F_DBGU_Printk("\n\rWhite Fill Test\n\r");			
				break;		
			case '6':
				Display_Draw_Line(display);
				AT91F_DBGU_Printk("\n\rDraw Line Test\n\r");	
				break;			
		}
	}
	
}







?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利91精品一区| 一本到不卡免费一区二区| 欧美日韩国产在线观看| 一区二区三区精品视频| 欧美性色黄大片| 日韩在线卡一卡二| 欧美大片顶级少妇| 成人免费视频caoporn| 国产精品久久三| 欧美综合一区二区三区| 日本伊人午夜精品| 欧美一三区三区四区免费在线看 | 成人久久18免费网站麻豆| 国产精品色婷婷| 777久久久精品| 波多野结衣亚洲| 日韩在线播放一区二区| 国产片一区二区三区| 色999日韩国产欧美一区二区| 亚洲日本护士毛茸茸| 精品国产免费视频| 欧美日韩免费高清一区色橹橹| 另类调教123区 | 精品欧美久久久| 日本高清成人免费播放| 国产福利一区二区三区视频在线 | 日韩一区二区免费电影| 99在线精品视频| bt7086福利一区国产| 国产一区二区在线观看免费| 亚洲成人自拍偷拍| 亚洲三级久久久| 亚洲人成小说网站色在线| 中文字幕不卡三区| 成人97人人超碰人人99| 日韩影院在线观看| 亚洲国产视频在线| 国产性色一区二区| 久久久久久97三级| 日本一区二区视频在线| 欧美变态tickle挠乳网站| 91麻豆精品国产综合久久久久久 | 中文字幕免费观看一区| 久久精品一区四区| 欧美激情在线看| 国产精品毛片久久久久久久| 久久精品一区二区三区四区| 欧美成人精品二区三区99精品| 欧美一级爆毛片| 国产亚洲一区二区在线观看| 国产日韩av一区二区| 中文字幕佐山爱一区二区免费| 亚洲日本在线看| 免费成人av资源网| 大白屁股一区二区视频| 91国偷自产一区二区三区观看| 色哟哟一区二区在线观看| 欧美一二三区在线| 亚洲久草在线视频| 久久精品国内一区二区三区| 国产suv精品一区二区6| 在线播放91灌醉迷j高跟美女 | 欧美mv日韩mv| 亚洲精品日日夜夜| 成人动漫一区二区在线| 欧美日韩激情一区二区| 中文字幕在线视频一区| 日韩va亚洲va欧美va久久| 91在线观看视频| 国产色婷婷亚洲99精品小说| 乱中年女人伦av一区二区| 日本韩国一区二区| 亚洲日穴在线视频| 99麻豆久久久国产精品免费| 国产亚洲精品bt天堂精选| 青青草91视频| 日韩免费视频一区| 天堂蜜桃一区二区三区 | 成人一区二区三区| 久久精品人人爽人人爽| 国产精品一区二区在线播放| 欧美一个色资源| 精久久久久久久久久久| 精品国产电影一区二区 | 青椒成人免费视频| 欧美mv和日韩mv国产网站| 蜜桃精品视频在线观看| 欧美一卡2卡三卡4卡5免费| 久久精品国产成人一区二区三区| 91精品国产美女浴室洗澡无遮挡| 日本aⅴ免费视频一区二区三区| 欧美视频你懂的| 九一久久久久久| 国产日产欧产精品推荐色| 色综合中文字幕国产| 视频一区二区国产| 久久久久久久久97黄色工厂| a在线欧美一区| 日韩高清国产一区在线| 国产欧美精品在线观看| 在线精品视频免费观看| 国产精品99久久久久久有的能看| 久久精品日产第一区二区三区高清版| 99re热这里只有精品免费视频| 亚洲国产精品久久久男人的天堂| 精品久久一区二区三区| 色妞www精品视频| 国产一区二区三区免费在线观看| 国产午夜精品久久久久久久 | 欧美亚洲综合网| 粉嫩高潮美女一区二区三区| 亚洲乱码国产乱码精品精的特点| 久久欧美中文字幕| 欧美一级xxx| 在线不卡中文字幕播放| 在线免费观看视频一区| 99热精品一区二区| 成人黄色片在线观看| 国产河南妇女毛片精品久久久| 日韩精品91亚洲二区在线观看| 一区二区三区在线影院| 自拍偷在线精品自拍偷无码专区| 久久久久国产一区二区三区四区| 97久久超碰国产精品| 一级精品视频在线观看宜春院| 欧美色涩在线第一页| 在线观看日韩av先锋影音电影院| 不卡的av中国片| 一本色道久久综合亚洲aⅴ蜜桃| 不卡的av电影| 欧美精品一级二级| 欧美成人精品福利| 中文字幕一区二区三区在线播放| 欧美激情一区在线| 一区二区三区四区不卡视频| 日韩毛片精品高清免费| 亚洲午夜在线电影| 久久国产成人午夜av影院| 丁香啪啪综合成人亚洲小说 | 中文字幕一区二区三区色视频| 久久久精品黄色| 亚洲一区日韩精品中文字幕| 日本怡春院一区二区| 国产二区国产一区在线观看| 成人午夜av在线| 欧美一区二区三区啪啪| 国产精品国产三级国产| 五月开心婷婷久久| 99re热视频这里只精品| 日韩视频免费观看高清完整版在线观看| 欧美一级在线免费| 亚洲免费在线播放| 国产精品一区二区三区网站| 日本韩国一区二区三区| 久久精品亚洲精品国产欧美kt∨ | 亚洲女女做受ⅹxx高潮| 日本欧洲一区二区| 欧美天天综合网| 亚洲色欲色欲www在线观看| 国产美女视频91| 日韩精品在线看片z| 麻豆中文一区二区| 7777精品久久久大香线蕉| 亚洲五码中文字幕| 91丝袜美女网| 亚洲精品国产成人久久av盗摄| 成人黄色在线网站| 国产精品久久久久久久裸模| 国产成人综合亚洲网站| 国产亚洲一二三区| 91网站在线播放| 亚洲一区二区精品视频| 欧美精品一卡二卡| 国产一区二区精品久久91| 久久综合久久鬼色| 91色.com| 另类小说欧美激情| 中文子幕无线码一区tr| 92精品国产成人观看免费| 天天综合色天天| 国产日韩精品一区二区三区 | 欧美唯美清纯偷拍| 精品影视av免费| 亚洲激情自拍偷拍| 国产午夜久久久久| 欧美色网站导航| 成人做爰69片免费看网站| 亚洲午夜视频在线| 国产精品高清亚洲| 91精品国产综合久久精品| www.在线成人| 老司机精品视频线观看86| 亚洲一区二区在线观看视频| 欧美一级免费观看| 欧美日本韩国一区| 在线观看视频一区二区| 色成人在线视频| 成人福利视频在线看| 国产精品一二三在| 蜜臀久久99精品久久久画质超高清 |