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

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

?? lcd.c

?? arm_s3c2410無操作系統的源碼---寫linux驅動的好資料
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include <string.h>
#include "2410addr.h"
#include "2410lib.h"
#include "def.h"
#include "lcdlib.h"
#include "glib.h"
#include "lcd.h"
#include ".\bmp\DEMO256.h"


void Lcd_Port_Init(void);
void Lcd_Port_Return(void);
void Lcd_Palette1Bit_Init(void);
void Lcd_Palette8Bit_Init(void);
void __irq Lcd_Int_Frame(void);
void __irq Lcd_Int_Fifo(void);
void __irq Lcd_Int_Fifo_640480(void);

unsigned save_rGPCUP,save_rGPCDAT,save_rGPCCON;
unsigned save_rGPDUP,save_rGPDDAT,save_rGPDCON; 
unsigned lcd_count;

void Lcd_Port_Init(void)
{
    save_rGPCCON=rGPCCON;
    save_rGPCDAT=rGPCDAT;
    save_rGPCUP=rGPCUP;
    save_rGPDCON=rGPDCON;
    save_rGPDDAT=rGPDDAT;
    save_rGPDUP=rGPDUP;
    rGPCUP=0xffffffff; // Disable Pull-up register
    rGPCCON=0xaaaaaaaa; //Initialize VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND 
    rGPDUP=0xffffffff; // Disable Pull-up register
    rGPDCON=0xaaaaaaaa; //Initialize VD[23:8]
    Uart_Printf("Initializing GPIO ports..........\n");
}

void Lcd_Port_Return(void)
{
    rGPCCON=save_rGPCCON;
    rGPCDAT=save_rGPCDAT;
    rGPCUP=save_rGPCUP;
    rGPDCON=save_rGPDCON;
    rGPDDAT=save_rGPDDAT;
    rGPDUP=save_rGPDUP;
}

void Lcd_Palette1Bit_Init(void)
{
    U32 *palette;
    palette=(U32 *)PALETTE;
    *palette++=0x0; // Black
    *palette=0xffff; // White
}

void Lcd_Palette8Bit_Init(void)
{
    int i;	
    U32 *palette;
    rLCDCON5|=(1<<11); // 5:6:5 Palette Setting
    palette=(U32 *)PALETTE;
    for(i=0;i<256;i++)
	*palette++=DEMO256pal[i];
}


void __irq Lcd_Int_Frame(void)
{
    rLCDINTMSK|=3; // Mask LCD SUB Interrupt

    // GPG4 is .... 
    rGPGDAT&=(~(1<<4)); // GPG4=Low
    Delay(50); // GPG4=Low
    rGPGDAT|=(1<<4); //GPG4=High

    rLCDSRCPND=2; // Clear LCD SUB Interrupt source pending
    rLCDINTPND=2; // Clear LCD SUB Interrupt pending
    rLCDINTMSK&=(~(2)); // Unmask LCD FRAME Interrupt
    ClearPending(BIT_LCD);
}


//240320
void __irq Lcd_Int_Fifo(void)
{
    rLCDINTMSK|=3; // Mask LCD SUB Interrupt

    if((lcd_count%20)==0) Uart_Printf("\n");
    Uart_Printf(".");
    lcd_count++;

    rLCDSRCPND=1; // Clear LCD SUB Interrupt source pending
    rLCDINTPND=1; // Clear LCD SUB Interrupt pending
    rLCDINTMSK&=(~(1)); // Unmask LCD FRAME Interrupt
    ClearPending(BIT_LCD);
}

void Test_Lcd_Stn_1Bit(void)
{
    int i,j;
    Lcd_Port_Init();
    Lcd_Init(MODE_STN_1BIT);
    Glib_Init(MODE_STN_1BIT);
    Lcd_EnvidOnOff(1); // Enable ENVID Bit
    Uart_Printf("[STN Mono(1bit/1pixel) LCD Test]\n");              

    Glib_ClearScr(0, MODE_STN_1BIT);
    for(j=0;j<LCD_YSIZE_STN;j+=16)
		for(i=0;i<LCD_XSIZE_STN;i+=16)
		    Glib_FilledRectangle(i,j,i+15,j+15,((j+i)/16)%2);
    Uart_Printf("STN Mono test 1. Press any key!\n");
    Uart_Getch();  	

    Glib_ClearScr(0, MODE_STN_1BIT);
    Glib_FilledRectangle(160,0,319,239,1);    //Half Screen
    Uart_Printf("STN Mono test 2. Press any key!\n");
    Uart_Getch();  	

    Glib_ClearScr(0, MODE_STN_1BIT); 
    Glib_Rectangle(0,0,319,239,1);   // #0
    Glib_Line(0,0,319,239,1);        // 00
    Glib_Line(0,239,319,0,1);

    Glib_Rectangle(0+320,0,319+320,239,1);   // 0#
    Glib_Line(0+320,0,319+320,239,1);        // 00
    Glib_Line(0+320,239,319+320,0,1);
    Glib_FilledRectangle(50+320,50,269+320,189,1);

    Glib_Rectangle(0,0+240,319,239+240,1);   // 00
    Glib_Line(0,0+240,319,239+240,1);        // #0
    Glib_Line(0,239+240,319,0+240,1);
    Glib_FilledRectangle(50,50+240,269,189+240,1);
    
    Glib_Rectangle(0+320,0+240,319+320,239+240,1);   // 00	
    Glib_Line(0+320,0+240,319+320,239+240,1);        // 0#
    Glib_Line(0+320,239+240,319+320,0+240,1);
    Glib_Rectangle(50+320,50+240,269+320,189+240,1);

    Uart_Printf("Virtual Screen Test(STN Mono). Press any key[ijkm\\r]!\n");
    MoveViewPort(MODE_STN_1BIT);
    Lcd_MoveViewPort(0,0,MODE_STN_1BIT);
    Lcd_EnvidOnOff(0); // Disable ENVID Bit
    Lcd_Port_Return();
}


void Test_Lcd_Stn_2Bit(void)
{
    int i,j,k;
    Lcd_Port_Init();
    Lcd_Init(MODE_STN_2BIT);
    Glib_Init(MODE_STN_2BIT);
    Lcd_EnvidOnOff(1); // Enable ENVID Bit
    Uart_Printf("[STN 4 gray(2bit/1pixel) LCD Test]\n");

    Glib_ClearScr(0, MODE_STN_2BIT);
    j=0;
    for(i=0;i<320;i+=80)
        Glib_FilledRectangle(0+i,0,79+i,239,j++);
    Uart_Printf("4 gray mode test 1. Press any key!\n");
    Uart_Getch();  	

    Glib_ClearScr(0, MODE_STN_2BIT);
    j=0;
    for(i=0;i<320;i+=80)
    {
    	Glib_FilledRectangle(0+i,0,79+i,119,j);
    	Glib_FilledRectangle(0+i,120,79+i,239,3-j);
    	j++;
    }
    Uart_Printf("4 gray mode test 2. Press any key!\n");
    Uart_Getch();  	

    Glib_ClearScr(0, MODE_STN_2BIT);
    j=0;
    for(i=0;i<240;i+=60)
    {
    	Glib_FilledRectangle(i,i,i+59,i+59,j);
    	j++;
    }
    Uart_Printf("4 gray mode test 3. Press any key!\n");
    Uart_Getch();  	

    Glib_ClearScr(0, MODE_STN_2BIT);
    k=0;
    for(i=160;i<480;i+=80)
    {
    	for(j=120;j<360;j+=60)
    	{
    	    Glib_FilledRectangle(i,j,i+79,j+59,k%4);
    	    k++;
    	}
    	k+=2;;
    }

    // #0
    // 00
    Glib_Rectangle(0,0,319,239,3);   
    Glib_Line(0,0,319,239,3);        
    Glib_Line(0,239,319,0,3);

    // 0#
    // 00
    Glib_Rectangle(0+320,0,319+320,239,3);          
    Glib_Line(0+320,0,319+320,239,3);        
    Glib_Line(0+320,239,319+320,0,3);

    // 00
    // #0
    Glib_Rectangle(0,0+240,319,239+240,3);          
    Glib_Line(0,0+240,319,239+240,3);        
    Glib_Line(0,239+240,319,0+240,3);

    // 00
    // 0#
    Glib_Line(0+320,0+240,319+320,239+240,3);        
    Glib_Line(0+320,239+240,319+320,0+240,3);
    Glib_Rectangle(50+320,50+240,269+320,189+240,3);

    Uart_Printf("Virtual Screen Test(STN 4 gray). Press any key[ijkm\\r]!\n");
    MoveViewPort(MODE_STN_2BIT);
    Lcd_MoveViewPort(0,0,MODE_STN_2BIT);
    Lcd_EnvidOnOff(0); // Disable ENVID Bit
    Lcd_Port_Return();
}


void Test_Lcd_Stn_4Bit(void)
{
    int i,j,k;
    Lcd_Port_Init();
    Lcd_Init(MODE_STN_4BIT);
    Glib_Init(MODE_STN_4BIT);
    Lcd_EnvidOnOff(1);
    Uart_Printf("[STN 16 gray(4bit/1pixel) LCD Test]\n");

    Glib_ClearScr(0, MODE_STN_4BIT);
    j=0;
    for(i=0;i<320;i+=20)
        Glib_FilledRectangle(0+i,0,19+i,239,j++);
    Uart_Printf("16 gray mode test 1. Press any key!\n");
    Uart_Getch();  	

    Glib_ClearScr(0, MODE_STN_4BIT);
    j=0;
    for(i=0;i<320;i+=20)
    {
    	Glib_FilledRectangle(0+i,0,19+i,119,j);
    	Glib_FilledRectangle(0+i,120,19+i,239,15-j);
    	j++;
    }
    Uart_Printf("16 gray mode test 2. Press any key!\n");
    Uart_Getch();  	


    Glib_ClearScr(0, MODE_STN_4BIT);
    j=0;
    for(i=0;i<240;i+=30)
    {
    	Glib_FilledRectangle(i,i,i+29,i+29,j);
    	Glib_FilledRectangle(i+110,i,i+29+110,i+29,j+8);
    	j++;
    }
    Uart_Printf("4 gray mode test 3. Press any key!\n");
    Uart_Getch();  	 


    Glib_ClearScr(0, MODE_STN_4BIT);
    k=0;
    for(i=160;i<480;i+=40)
    	for(j=120;j<360;j+=30)
    	{
    	    Glib_FilledRectangle(i,j,i+39,j+29,k%16);
    	    k++;
    	}
    		    
    // #0		    
    // 00		    
    Glib_Rectangle(0,0,319,239,15);   
    Glib_Line(0,0,319,239,15);        
    Glib_Line(0,239,319,0,15);

    // 0#
    // 00
    Glib_Rectangle(0+320,0,319+320,239,15);
    Glib_Line(0+320,0,319+320,239,15);        
    Glib_Line(0+320,239,319+320,0,15);

    // 00
    // #0
    Glib_Rectangle(0,0+240,319,239+240,15);
    Glib_Line(0,0+240,319,239+240,15);        
    Glib_Line(0,239+240,319,0+240,15);

    // 00
    // 0#
    Glib_Rectangle(0+320,0+240,319+320,239+240,15);
    Glib_Line(0+320,0+240,319+320,239+240,15);     
    Glib_Line(0+320,239+240,319+320,0+240,15);
    Glib_Rectangle(50+320,50+240,269+320,189+240,15);

    Uart_Printf("Virtual Screen Test(STN 16 gray). Press any key[ijkm\\r]!\n");
    MoveViewPort(MODE_STN_4BIT);
    Lcd_MoveViewPort(0,0,MODE_STN_4BIT);
    Lcd_EnvidOnOff(0);
    Lcd_Port_Return();
}


void Test_Lcd_Cstn_8Bit(void)
{
    int i,j,k;
    Lcd_Port_Init();
    Lcd_Init(MODE_CSTN_8BIT);
    Glib_Init(MODE_CSTN_8BIT);
    Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
    Uart_Printf("[CSTN 256 COLOR(8bit/1pixel) LCD TEST]\n");
    Uart_Printf("     R:0   ...    7 \n");
    Uart_Printf("G:0  B0:1 B0:1 B0:1 \n");
    Uart_Printf("G:.   2:3  2:3  2:3 \n");
    Uart_Printf("G:.  B0:1 B0:1 B0:1 \n");
    Uart_Printf("G:.   2:3  2:3  2:3 \n");
    Uart_Printf("G:.  B0:1 B0:1 B0:1 \n");
    Uart_Printf("G:7   2:3  2:3  2:3 \n");

    
    Glib_ClearScr(0, MODE_CSTN_8BIT);
    for(j=0;j<240;j++)
		for(i=0;i<320;i++) //RRRGGGBB
		    PutPixel(i,j,((i/40)<<5)+((j/30)<<2)+(((j/15)%2)<<1)+((i/20)%2));
    Uart_Printf("CSTN 256 color mode test 1. Press any key!\n");
    Uart_Getch();  	
  
    Glib_ClearScr(0, MODE_CSTN_8BIT);
    k=0;
    for(i=160;i<480;i+=20)
    	for(j=120;j<360;j+=15)
    	{
    	    Glib_FilledRectangle(i,j,i+19,j+14,k);
    	    k++;
    	}

    // #0		    
    // 00		    
    Glib_Rectangle(0,0,319,239,255);   
    Glib_Line(0,0,319,239,255);        
    Glib_Line(0,239,319,0,255);

    // 0#
    // 00
    Glib_Rectangle(0+320,0,319+320,239,255);
    Glib_Line(0+320,0,319+320,239,255);        
    Glib_Line(0+320,239,319+320,0,255);

    // 00
    // #0
    Glib_Rectangle(0,0+240,319,239+240,255);
    Glib_Line(0,0+240,319,239+240,255);        
    Glib_Line(0,239+240,319,0+240,255);

    // 00
    // 0#
    Glib_Rectangle(0+320,0+240,319+320,239+240,255);
    Glib_Line(0+320,0+240,319+320,239+240,255);     
    Glib_Line(0+320,239+240,319+320,0+240,255);
    Glib_Rectangle(50+320,50+240,269+320,189+240,255);

    Uart_Printf("Virtual Screen Test(CSTN 256 color). Press any key[ijkm\\r]!\n");
    MoveViewPort(MODE_CSTN_8BIT);
    Lcd_MoveViewPort(0,0,MODE_CSTN_8BIT);
    Lcd_CstnOnOff(0); // Disable ENVID Bit and GPB5 output
    Lcd_Port_Return();
}


void Test_Lcd_Cstn_8Bit_On(void)
{
    int i,j;
    Lcd_Port_Init();
    Lcd_Init(MODE_CSTN_8BIT);
    Glib_Init(MODE_CSTN_8BIT);
    Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
    Uart_Printf("[CSTN LCD(8bit/1pixel) WILL BE TURNED ON EVEN DURING OTHER TEST]\n");
    Uart_Printf("If you'd like to off the CSTN LCD, then excute other LCD test program,\n");     
    for(j=0;j<240;j++)
	for(i=0;i<320;i++)	//RRRGGGBB
	    PutPixel(i,j,((i/40)<<5)+((j/30)<<2)+(((j/15)%2)<<1)+((i/20)%2));
}


void Test_Lcd_Cstn_12Bit(void)
{
    int i,j,k;
    Lcd_Port_Init();
    Lcd_Init(MODE_CSTN_12BIT);
    Glib_Init(MODE_CSTN_12BIT);
    Lcd_CstnOnOff(1); // Enable ENVID Bit and GPB5 output
    Uart_Printf("[CSTN 4K COLOR(12bit/1pixel) LCD TEST]\n");
    Uart_Printf("R:0 ...    16\n");
    Uart_Printf("G:0 ...    16\n");
    Uart_Printf("B:0 ...    16\n");
 
    Glib_ClearScr(0, MODE_CSTN_12BIT);
    k=0;
    for(j=0;j<240;j+=80)
        for(i=0;i<320;i+=20)
		{   
	 	   if((k<16)|(k>31))
		    {
		        Glib_FilledRectangle(i,j,i+19,j+79,((k%16)<<(4*(k/16))));
		        k++;
		    }
		    else
		    {
		        Glib_FilledRectangle(i,j,i+19,j+79,((k-(1+2*(k%16)))<<(4*(k/16))));
		        k++;
		    }
		}
    Uart_Printf("CSTN 4K color mode test 1. Press any key!\n");
    Uart_Getch();  	

    Glib_ClearScr(0, MODE_CSTN_12BIT);
    for(j=0;j<240;j++)
		for(i=0;i<320;i++)
		    PutPixel(i,j,((i/40)<<9)+((j/30)<<5)+(((j/15)%2)<<1)+((i/20)%2));
    Uart_Printf("CSTN 4K color mode test 2. Press any key!\n");
    Uart_Getch();  	

    Glib_ClearScr(0, MODE_CSTN_12BIT);
    k=0;
    for(i=160;i<480;i+=20)
    	for(j=120;j<360;j+=15)
    	{
    	    Glib_FilledRectangle(i,j,i+19,j+14,(((k&0xf)<<8)|((k%4)<<4)|(k&0xf0)) );
    	    k++;
    	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品国产欧美| 日韩欧美国产精品一区| 欧亚洲嫩模精品一区三区| 欧美一区二区三区男人的天堂| 精品国偷自产国产一区| 加勒比av一区二区| 国产精品自拍网站| 久久综合av免费| 国产成人福利片| 国产精品毛片久久久久久久| 91在线看国产| 亚洲影视资源网| 91精品国产日韩91久久久久久| 久久精品国产精品亚洲精品| 久久久国产一区二区三区四区小说 | av网站一区二区三区| 亚洲视频小说图片| 欧美精品日日鲁夜夜添| 国产在线精品一区二区不卡了| 欧美国产激情一区二区三区蜜月| 97国产精品videossex| 偷拍与自拍一区| 久久久久久久久久久99999| 色综合久久中文字幕| 秋霞影院一区二区| 日本一区二区免费在线| 欧美三级韩国三级日本三斤 | 精品三级av在线| 成人毛片老司机大片| 五月婷婷欧美视频| 久久免费精品国产久精品久久久久| 99re亚洲国产精品| 伦理电影国产精品| 亚洲视频一区二区在线| 日韩欧美国产成人一区二区| 91小视频在线| 国产一区二区三区四区五区入口| 亚洲男人天堂一区| 欧美mv和日韩mv国产网站| 色综合天天综合网天天看片| 精品一区二区三区在线观看国产| 亚洲毛片av在线| 久久美女艺术照精彩视频福利播放 | 精品国产麻豆免费人成网站| 色菇凉天天综合网| 国产九九视频一区二区三区| 婷婷激情综合网| 亚洲欧洲av一区二区三区久久| 一区二区三区在线影院| 国产亚洲欧美中文| 日韩亚洲欧美中文三级| 色8久久人人97超碰香蕉987| 国产99久久久久久免费看农村| 日韩黄色免费网站| 亚洲一区二区三区四区在线观看| 国产色综合久久| 欧美刺激午夜性久久久久久久| 色88888久久久久久影院野外| 丰满放荡岳乱妇91ww| 韩国毛片一区二区三区| 日韩国产高清在线| 亚洲第一综合色| 亚洲精品乱码久久久久久黑人| 中文一区二区在线观看| 久久美女高清视频| 26uuu国产电影一区二区| 欧美肥妇毛茸茸| 欧美日韩一区二区三区高清| 日本精品一级二级| 97精品久久久午夜一区二区三区 | 欧美片在线播放| 成人在线综合网| 国产成人免费9x9x人网站视频| 久久国产精品72免费观看| 美腿丝袜亚洲三区| 全国精品久久少妇| 免费成人美女在线观看.| 欧美a一区二区| 日本欧美在线观看| 麻豆久久久久久| 精品一区免费av| 国产精品中文字幕欧美| 国产精品一区二区久久精品爱涩 | 95精品视频在线| av在线不卡免费看| 99在线精品视频| 色偷偷成人一区二区三区91| 色狠狠一区二区三区香蕉| 在线观看日产精品| 欧美日韩精品系列| 日韩欧美一区在线| 久久久精品日韩欧美| 欧美激情一区二区三区在线| 国产精品乱人伦| 一区二区三区中文字幕在线观看| 亚洲午夜电影在线| 免费人成黄页网站在线一区二区| 精品亚洲国产成人av制服丝袜| 国产一区二区三区最好精华液| 成人福利视频在线| 欧美三区在线观看| 精品久久久影院| 成人免费在线观看入口| 亚洲国产三级在线| 国产在线国偷精品产拍免费yy| 99精品黄色片免费大全| 欧美亚洲另类激情小说| 欧美一区二区三区免费在线看| 久久久久88色偷偷免费| 亚洲免费观看视频| 免费观看成人av| av在线免费不卡| 椎名由奈av一区二区三区| 亚洲主播在线播放| 国内一区二区在线| 色欧美片视频在线观看在线视频| 欧美一区二区三区白人| 日本一区二区三区国色天香| 亚洲永久免费av| 国产高清在线精品| 欧美老肥妇做.爰bbww视频| 国产亚洲欧美日韩俺去了| 亚洲激情欧美激情| 麻豆高清免费国产一区| 91美女视频网站| 欧美成人一区二区三区| 一区二区三区小说| 国产福利一区在线观看| 欧美午夜在线观看| 国产精品美女www爽爽爽| 免费视频最近日韩| 在线精品国精品国产尤物884a| 久久嫩草精品久久久久| 人妖欧美一区二区| 色999日韩国产欧美一区二区| 国产午夜亚洲精品不卡| 蜜臀av一区二区| 欧美美女黄视频| 一区二区三区四区在线播放| 国产精品一区一区三区| 欧美一区二区三区日韩视频| 艳妇臀荡乳欲伦亚洲一区| 国产suv精品一区二区6| 精品国产百合女同互慰| 视频一区视频二区中文| 在线视频一区二区免费| 国产精品理论片| 欧美一二三四在线| 亚洲一区中文在线| 色综合久久久久久久久久久| 国产性色一区二区| 精品亚洲成a人| 日韩一二三四区| 日本欧美久久久久免费播放网| 色乱码一区二区三区88| 自拍偷拍亚洲激情| yourporn久久国产精品| 久久影院电视剧免费观看| 日韩电影免费在线看| 欧美巨大另类极品videosbest | 国产乱码精品一区二区三区av | 亚洲国产精品ⅴa在线观看| 久久99精品久久只有精品| 91精品国产福利在线观看| 图片区小说区区亚洲影院| 欧美另类一区二区三区| 三级一区在线视频先锋| 欧美精品在线视频| 视频精品一区二区| 91精品国产麻豆| 蜜桃av一区二区三区电影| 日韩写真欧美这视频| 蜜臀91精品一区二区三区| 日韩免费视频线观看| 久久精品国产秦先生| 精品国产乱码久久久久久影片| 蜜臀av性久久久久av蜜臀妖精| 一区二区三区精品| 欧美视频精品在线观看| 日韩一区欧美二区| 欧美videossexotv100| 国产综合色在线视频区| 欧美激情一区二区三区蜜桃视频| 菠萝蜜视频在线观看一区| 亚洲视频一区二区在线观看| 欧美视频精品在线观看| 日韩av一二三| 国产婷婷一区二区| 99综合影院在线| 亚洲成a人v欧美综合天堂| 欧美一区二区三区在线视频| 国模一区二区三区白浆| 中文字幕在线一区二区三区| 色综合久久中文综合久久牛| 丝瓜av网站精品一区二区| 欧美哺乳videos| av一本久道久久综合久久鬼色| 亚洲国产精品欧美一二99| 精品国产一区二区三区不卡| 99这里只有精品|