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

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

?? lcdlib.c

?? 基于ARM9芯片的一個簡單的GPRS測試程序
?? C
?? 第 1 頁 / 共 3 頁
字號:

    	default:
    	    break;
		}
    	uart_printf("vx=%3d,vy=%3d\n",vx,vy);
    	Lcd_MoveViewPort(vx,vy,type);
   }
}

/*********************************************************************************************
* name:		Lcd_MoveViewPort
* func:		screen scrolling  
* para:		int vx      --  horizontal pixel to move
*           int vy      --  vertical pixel to move
*           int type    --  lcd display mode.
* ret:		none
* modify:
* comment:		
*********************************************************************************************/

void Lcd_MoveViewPort(int vx,int vy,int type)
{
    UINT32T addr;
    switch(type)
    {
        case MODE_STN_1BIT:
        	// LCDBASEU,LCDBASEL register has to be changed before 12 words before the end of VLINE.
        	// In mono mode, x=320 is 10 words, So, We can't change LCDBASEU,LCDBASEL 
        	// during LINECNT=1~0 at mono mode. 
            // The processor mode should be superviser mode.  
        	SET_IF();
        	#if (LCD_XSIZE_STN<512)
        	    while((rLCDCON1>>18)<=1);                       // if x<512
           	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>512 ((12+4)*32) 
        	#endif
        	addr=(UINT32T)frameBuffer1Bit+(vx/8)+vy*(SCR_XSIZE_STN/8);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D( ((addr+(SCR_XSIZE_STN*LCD_YSIZE_STN/8))>>1) );
        	CLR_IF();
           	break;

        case MODE_STN_2BIT:
        	SET_IF(); 
        	#if (LCD_XSIZE_STN<256)
           	    while((rLCDCON1>>18)<=1);                       // if x<256
        	#else	
                while((rLCDCON1>>18)==0);                       // if x>256
        	#endif
            addr=(UINT32T)frameBuffer2Bit+(vx/4)+vy*(SCR_XSIZE_STN/4);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_STN*LCD_YSIZE_STN/4))>>1));
        	CLR_IF();
            break;

        case MODE_STN_4BIT:
        	SET_IF(); 
        	#if (LCD_XSIZE_STN<128)
        	    while((rLCDCON1>>18)<=1);                       // if x<128
        	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>128
        	#endif
            addr=(UINT32T)frameBuffer4Bit+(vx/2)+vy*(SCR_XSIZE_STN/2);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_STN*LCD_YSIZE_STN/2))>>1));
        	CLR_IF();
            break;

        case MODE_CSTN_8BIT:
        	SET_IF(); 
        	#if (LCD_XSIZE_CSTN<64)
        	    while((rLCDCON1>>18)<=1);                       // if x<64
        	#else	
         	    while((rLCDCON1>>18)==0);                       // if x>64
        	#endif
            addr=(UINT32T)frameBuffer8Bit+(vx/1)+vy*(SCR_XSIZE_CSTN/1);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_CSTN*LCD_YSIZE_CSTN))>>1));
        	CLR_IF();
            break;

        case MODE_CSTN_12BIT:
        	SET_IF(); 
        	#if (LCD_XSIZE_CSTN<43)
        	    while((rLCDCON1>>18)<=1);                       // if x<43
        	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>43
        	#endif
        	
        	// Move 6Byte(4pixel)
        	addr=(UINT32T)frameBuffer12Bit+(vx*3/2)+vy*(SCR_XSIZE_CSTN*3/2); 
        	
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_CSTN*LCD_YSIZE_CSTN*3/2))>>1));
        	CLR_IF();
            break;
    	
        case MODE_TFT_1BIT_240320:
        	SET_IF(); 
        	#if (LCD_XSIZE_TFT_240320<512)
        	    while((rLCDCON1>>18)<=1);                       // if x<512
        	#else	
    	    while((rLCDCON1>>18)==0);                           // if x>512
        	#endif
            addr=(UINT32T)frameBuffer8BitTft240320+(vx/8)+vy*(SCR_XSIZE_TFT_240320/8);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_TFT_240320*LCD_YSIZE_TFT_240320/8))>>1));
        	CLR_IF();
            break;

        case MODE_TFT_8BIT_240320:
        	SET_IF(); 
        	#if (LCD_XSIZE_TFT_240320<64)
        	    while((rLCDCON1>>18)<=1);                       // if x<64
        	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>64
        	#endif
            addr=(UINT32T)frameBuffer8BitTft240320+(vx/1)+vy*(SCR_XSIZE_TFT_240320/1);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_TFT_240320*LCD_YSIZE_TFT_240320))>>1));
        	CLR_IF();
            break;

        case MODE_TFT_16BIT_240320:
        	SET_IF(); 
        	#if (LCD_XSIZE_TFT_240320<32)
        	    while((rLCDCON1>>18)<=1);                       // if x<32
        	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>32
        	#endif
            addr=(UINT32T)frameBuffer16BitTft240320+(vx*2)+vy*(SCR_XSIZE_TFT_240320*2);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_TFT_240320*LCD_YSIZE_TFT_240320*2))>>1));
        	CLR_IF();
            break;

        case MODE_TFT_1BIT_640480:
        	SET_IF();
        	#if (LCD_XSIZE_TFT_640480<512)
        	    while((rLCDCON1>>18)<=1);                       // if x<512
        	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>512 ((12+4)*32) 
        	#endif
            addr=(UINT32T)frameBuffer1BitTft640480+(vx/8)+vy*(SCR_XSIZE_TFT_640480/8);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D( ((addr+(SCR_XSIZE_TFT_640480*LCD_YSIZE_TFT_640480/8))>>1) );
        	CLR_IF();
            break;

        case MODE_TFT_8BIT_640480:
        	SET_IF(); 
        	#if (LCD_XSIZE_TFT_640480<64)
        	    while((rLCDCON1>>18)<=1);                       // if x<64
        	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>64
        	#endif
            addr=(UINT32T)frameBuffer8BitTft640480+(vx/1)+vy*(SCR_XSIZE_TFT_640480/1);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_TFT_640480*LCD_YSIZE_TFT_640480))>>1));
        	CLR_IF();
            break;

        case MODE_TFT_16BIT_640480:
        	SET_IF(); 
        	#if (LCD_XSIZE_TFT_640480<32)
        	    while((rLCDCON1>>18)<=1);                       // if x<32
        	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>32
        	#endif
            addr=(UINT32T)frameBuffer16BitTft640480+(vx*2)+vy*(SCR_XSIZE_TFT_640480*2);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_TFT_640480*LCD_YSIZE_TFT_640480*2))>>1));
        	CLR_IF();
            break;

        case MODE_TFT_24BIT_640480:
        	SET_IF(); 
        	#if (LCD_XSIZE_TFT_640480<16)
        	    while((rLCDCON1>>18)<=1);                       // if x<16
        	#else	
        	    while((rLCDCON1>>18)==0);                       // if x>16
        	#endif
            addr=(UINT32T)frameBuffer24BitTft640480+(vx*4)+vy*(SCR_XSIZE_TFT_640480*4);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_TFT_640480*LCD_YSIZE_TFT_640480*4))>>1));
        	CLR_IF();
            break;

        case MODE_TFT_1BIT_800600:
        	SET_IF();
        	#if (LCD_XSIZE_TFT_800600<512)
                while((rLCDCON1>>18)<=1);                       // if x<512
        	#else	
                while((rLCDCON1>>18)==0);                       // if x>512 ((12+4)*32) 
        	#endif
            addr=(UINT32T)frameBuffer1BitTft800600+(vx/8)+vy*(SCR_XSIZE_TFT_800600/8);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D( ((addr+(SCR_XSIZE_TFT_800600*LCD_YSIZE_TFT_800600/8))>>1) );
        	CLR_IF();
            break;

        case MODE_TFT_8BIT_800600:
        	SET_IF(); 
    	    #if (LCD_XSIZE_TFT_800600<64)
        	    while((rLCDCON1>>18)<=1);                       // if x<64
    	    #else	
    	        while((rLCDCON1>>18)==0);                       // if x>64
    	    #endif
            addr=(UINT32T)frameBuffer8BitTft800600+(vx/1)+vy*(SCR_XSIZE_TFT_800600/1);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_TFT_800600*LCD_YSIZE_TFT_800600))>>1));
        	CLR_IF();
            break;

        case MODE_TFT_16BIT_800600:
        	SET_IF(); 
    	    #if (LCD_XSIZE_TFT_800600<32)
        	    while((rLCDCON1>>18)<=1);                       // if x<32
    	    #else	
        	    while((rLCDCON1>>18)==0);                       // if x>32
    	    #endif
            addr=(UINT32T)frameBuffer16BitTft800600+(vx*2)+vy*(SCR_XSIZE_TFT_800600*2);
        	rLCDSADDR1= ( (addr>>22)<<21 ) | M5D(addr>>1);
        	rLCDSADDR2= M5D(((addr+(SCR_XSIZE_TFT_800600*LCD_YSIZE_TFT_800600*2))>>1));
        	CLR_IF();
            break;

        default:
            break;
   }   
}    
    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品久久精品色综合| 日韩成人免费在线| 国产女人18水真多18精品一级做| 欧美日韩一区二区在线观看视频| 99精品欧美一区二区三区小说| 国产精品亚洲一区二区三区在线| 国模大尺度一区二区三区| 久久99国产精品免费| 狠狠狠色丁香婷婷综合激情| 韩国三级中文字幕hd久久精品| 麻豆精品一区二区综合av| 免费人成黄页网站在线一区二区| 日本不卡不码高清免费观看| 免费高清不卡av| 国产精品自拍在线| 972aa.com艺术欧美| 日本高清无吗v一区| 69堂亚洲精品首页| 久久精品一区二区三区av| 亚洲国产精品麻豆| 日韩avvvv在线播放| 麻豆91免费看| 成人免费高清在线观看| 色综合色综合色综合| 欧美一级日韩不卡播放免费| 国产婷婷色一区二区三区| 日韩一区欧美一区| 三级不卡在线观看| 国产激情精品久久久第一区二区| 99re在线视频这里只有精品| 欧美日韩中文字幕一区| 久久久一区二区| 国产精品久久精品日日| 偷拍一区二区三区| 国产aⅴ精品一区二区三区色成熟| 成人亚洲精品久久久久软件| 在线精品视频一区二区三四| 欧美va日韩va| 亚洲欧美另类久久久精品2019| 日韩高清在线不卡| 不卡视频免费播放| 欧美一区二区精美| 自拍av一区二区三区| 日日夜夜精品视频免费 | av午夜精品一区二区三区| 91小视频在线观看| 久久久一区二区三区| 亚洲成a人片综合在线| 国产黄人亚洲片| 日韩欧美不卡在线观看视频| 亚洲免费观看高清完整版在线观看 | 亚洲精品日韩专区silk| 精品一区二区三区香蕉蜜桃| 欧美亚洲国产bt| 国产精品久久夜| 国产精品亚洲午夜一区二区三区| 欧美精品三级在线观看| 亚洲欧洲综合另类在线| 国产91富婆露脸刺激对白| 日韩欧美一级片| 日韩激情一区二区| 欧美无人高清视频在线观看| 中文字幕欧美一| 不卡视频在线看| 国产欧美日韩亚州综合| 国产精品91xxx| 国产日韩欧美高清在线| 国产乱人伦偷精品视频不卡 | 精品国产百合女同互慰| 视频一区视频二区中文字幕| 欧美性生活久久| 亚洲激情在线播放| 欧美日韩精品一二三区| 亚洲成人激情自拍| 欧美在线不卡视频| 亚洲国产欧美在线| 欧美美女一区二区| 日日夜夜精品视频免费| 日韩手机在线导航| 国产综合色在线视频区| 久久亚洲免费视频| 国产高清精品在线| 亚洲天堂精品视频| 色屁屁一区二区| 亚洲电影视频在线| 日韩欧美专区在线| 国产精品1024| 国产精品不卡一区| 在线观看免费亚洲| 麻豆免费精品视频| 国产日韩欧美综合一区| 91视视频在线观看入口直接观看www| 国产精品国产三级国产普通话三级| 国产成人99久久亚洲综合精品| 国产精品传媒视频| 欧美精品色一区二区三区| 精品一区二区三区蜜桃| 国产精品视频一区二区三区不卡| 95精品视频在线| 日本一不卡视频| 久久久久久一二三区| 91麻豆精品在线观看| 午夜成人免费视频| 久久久噜噜噜久久中文字幕色伊伊| 成人福利在线看| 亚洲成av人综合在线观看| 精品国产伦一区二区三区观看方式 | 亚洲欧美偷拍卡通变态| 欧美电影影音先锋| 国产精品91xxx| 婷婷亚洲久悠悠色悠在线播放| 久久久综合九色合综国产精品| 成+人+亚洲+综合天堂| 天天综合色天天综合色h| 国产精品免费视频网站| 日韩三级视频在线观看| 成人av在线一区二区三区| 蜜桃视频一区二区三区| 亚洲精选免费视频| 国产欧美在线观看一区| 欧美日韩夫妻久久| 99久久婷婷国产综合精品| 精品一区二区三区在线观看| 亚洲大片一区二区三区| 国产欧美日韩一区二区三区在线观看| 欧美剧情片在线观看| 91在线码无精品| 成人av网站在线| 免费观看日韩av| 日韩精品成人一区二区三区| 1000部国产精品成人观看| 国产午夜精品久久久久久免费视| 欧美理论片在线| 欧美曰成人黄网| 97久久超碰精品国产| 国产精品91一区二区| 免费人成黄页网站在线一区二区| 亚洲一区二区欧美日韩| 亚洲人一二三区| 最新成人av在线| 中文字幕制服丝袜成人av | 91高清视频在线| 高清av一区二区| 国产成人啪午夜精品网站男同| 奇米在线7777在线精品| 日本在线播放一区二区三区| 亚洲国产综合色| 亚洲影视在线播放| 亚洲自拍与偷拍| 香蕉久久一区二区不卡无毒影院| 亚洲精选一二三| 亚洲一区二区三区中文字幕| 亚洲免费观看高清完整| 夜夜嗨av一区二区三区| 一区二区久久久| 午夜影院久久久| 免费成人结看片| 国产在线视频不卡二| 国产98色在线|日韩| 成人app软件下载大全免费| 91在线国内视频| 欧美专区亚洲专区| 欧美精品日日鲁夜夜添| www欧美成人18+| 中文字幕人成不卡一区| 亚洲最新视频在线播放| 日韩二区三区四区| 国产精品一二三| 一本久久精品一区二区| 欧美日韩国产小视频| 91精品国产综合久久小美女| 精品99一区二区三区| 中文字幕一区av| 日精品一区二区| 国产精品69久久久久水密桃| 99精品视频一区二区三区| 欧美男女性生活在线直播观看| 精品国产乱码久久久久久蜜臀| 久久久精品免费免费| 亚洲精品日产精品乱码不卡| 日韩精品一卡二卡三卡四卡无卡| 激情深爱一区二区| 91福利资源站| 26uuu欧美日本| 亚洲欧美一区二区三区国产精品| 天堂一区二区在线| 成人黄色大片在线观看| 欧美日韩一区二区三区不卡| 久久综合给合久久狠狠狠97色69| 亚洲欧洲性图库| 久久99国产精品免费| 97久久精品人人爽人人爽蜜臀| 日韩一区二区精品葵司在线 | 欧美日韩国产大片| 国产三级欧美三级| 午夜国产精品影院在线观看| 不卡一卡二卡三乱码免费网站 | 美女国产一区二区三区| a在线欧美一区| 26uuu成人网一区二区三区|