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

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

?? lcdlib.c

?? ARM2410 要更多的遠嗎
?? 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一区二区三区免费野_久草精品视频
亚洲欧洲日韩综合一区二区| 樱桃视频在线观看一区| 久久精品人人做人人爽人人| 欧美国产一区在线| 亚洲精品ww久久久久久p站| 五月天精品一区二区三区| 九色综合狠狠综合久久| 成人短视频下载| 欧美日韩免费高清一区色橹橹| 欧美电影免费观看完整版| 国产精品国产自产拍高清av| 无码av中文一区二区三区桃花岛| 韩国成人福利片在线播放| 色综合天天综合网天天狠天天| 9191成人精品久久| 国产精品天干天干在观线| 午夜欧美2019年伦理| 狠狠色丁香婷综合久久| 欧美最猛性xxxxx直播| 亚洲精品一区二区在线观看| 亚洲精品高清在线观看| 另类综合日韩欧美亚洲| 99国产欧美久久久精品| 欧美一级理论片| 亚洲天堂2016| 精品综合久久久久久8888| 色综合天天综合网国产成人综合天 | 免费在线看成人av| 成人黄色小视频在线观看| 欧美日韩亚州综合| 午夜电影久久久| 欧洲精品在线观看| 亚洲一区二区三区在线| 国产一区二区三区四区五区入口| 在线视频中文字幕一区二区| 视频一区二区国产| 精品一区二区三区不卡| 欧美三区免费完整视频在线观看| 日本一二三四高清不卡| 麻豆精品视频在线观看| 在线视频国产一区| 国产69精品久久99不卡| 欧美精品xxxxbbbb| 亚洲老妇xxxxxx| 国产suv精品一区二区883| 日韩手机在线导航| 性做久久久久久久久| eeuss国产一区二区三区| 2024国产精品视频| 免费看欧美美女黄的网站| 欧美午夜不卡在线观看免费| 国产色爱av资源综合区| 久久国产日韩欧美精品| 欧美日韩亚州综合| 亚洲综合男人的天堂| 懂色av一区二区在线播放| 欧美mv和日韩mv的网站| 免费在线视频一区| 欧美日韩国产首页| 亚洲制服欧美中文字幕中文字幕| 91在线观看视频| 国产精品视频一二三| 国产精品99久久不卡二区| 欧美videos中文字幕| 蜜桃精品视频在线| 欧美一区二区福利在线| 丝袜a∨在线一区二区三区不卡| 欧美性生活一区| 亚洲激情在线激情| 一本一道综合狠狠老| 中文字幕中文字幕一区二区| 国产凹凸在线观看一区二区| 久久精品亚洲精品国产欧美| 国产在线视频不卡二| 26uuu色噜噜精品一区| 九九精品一区二区| 精品国产麻豆免费人成网站| 精品一区二区三区日韩| 精品免费国产二区三区| 国产一区二区看久久| 精品久久久三级丝袜| 激情综合一区二区三区| 精品国产乱码久久久久久牛牛| 宅男噜噜噜66一区二区66| 天天综合天天综合色| 一区二区三区在线视频观看| 亚洲精品一区二区三区四区高清| 日本久久一区二区| 国产麻豆视频一区| 亚洲一二三四区不卡| xnxx国产精品| 欧美一区二区三区精品| 99久久久久久| 久久99国产乱子伦精品免费| 久草在线在线精品观看| 亚洲国产日韩精品| 国产欧美综合在线| 中文一区一区三区高中清不卡| 国产一区福利在线| av中文字幕不卡| 日本韩国欧美一区二区三区| 免费成人深夜小野草| 一区二区在线看| 国产成人免费高清| 久久久美女艺术照精彩视频福利播放| 日韩精品一区二区三区老鸭窝| 日本大香伊一区二区三区| 精品国产伦一区二区三区观看体验| 捆绑变态av一区二区三区| 91精品欧美综合在线观看最新 | 亚洲精品视频一区| 欧美性猛片aaaaaaa做受| 奇米精品一区二区三区四区 | 六月丁香婷婷色狠狠久久| 精品国产一区二区三区久久久蜜月 | 狠狠色丁香九九婷婷综合五月| 欧美mv日韩mv| 岛国av在线一区| 亚洲精品视频一区二区| 日韩你懂的在线播放| www.久久精品| 午夜精品久久一牛影视| 久久久精品免费网站| 在线观看国产91| 日韩不卡一区二区三区| 久久蜜桃一区二区| 99综合影院在线| 亚洲精品免费在线| 91精品国产免费| 91丨porny丨中文| 国产不卡视频一区| 日韩一区二区精品在线观看| 久久伊人蜜桃av一区二区| 欧美一区在线视频| 5566中文字幕一区二区电影 | 337p亚洲精品色噜噜噜| 日韩欧美一区电影| 久久精品视频一区| 亚洲免费观看在线视频| 肉色丝袜一区二区| 日本美女一区二区三区视频| 亚洲h在线观看| 国产在线视频不卡二| 成人午夜电影网站| 精品精品国产高清a毛片牛牛| 国产精品视频线看| 欧美xfplay| 欧美在线|欧美| 大胆欧美人体老妇| 国产在线国偷精品免费看| 亚洲综合色网站| 欧美不卡123| 国产麻豆视频精品| 欧美日韩在线综合| 精品sm捆绑视频| 亚洲欧美激情一区二区| 国产乱码精品一区二区三区av | 日本不卡一区二区三区高清视频| 91麻豆精品国产自产在线| 91在线国产福利| 国产高清在线精品| 伊人夜夜躁av伊人久久| 中文av一区特黄| 欧美精品一区二区久久久| 91精品国产综合久久香蕉麻豆| 欧美中文字幕一二三区视频| av在线一区二区| 国产精品一区二区免费不卡 | 91精品黄色片免费大全| 欧美最猛黑人xxxxx猛交| 95精品视频在线| 成人午夜激情视频| 国产黑丝在线一区二区三区| 国产在线视频一区二区三区| 狠狠色狠狠色综合系列| 九九视频精品免费| 麻豆成人免费电影| 七七婷婷婷婷精品国产| 日韩电影在线观看网站| 午夜在线成人av| 性做久久久久久| 日韩中文字幕亚洲一区二区va在线 | 亚洲成人中文在线| 亚洲在线中文字幕| 一区二区三区四区高清精品免费观看| 亚洲欧洲日产国产综合网| 亚洲欧洲www| 亚洲欧美偷拍卡通变态| 一区二区国产视频| 亚洲国产精品一区二区久久| 亚洲午夜视频在线| 91黄色免费观看| 日本久久精品电影| 欧美性色综合网| 欧美二区在线观看| 日韩免费看网站| 久久久久99精品国产片| 国产精品免费久久| 亚洲男人的天堂网| 亚洲综合在线第一页|