<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 深入理解ARM體系架構(gòu)(S3C6410)---lcd 顯示圖片

          深入理解ARM體系架構(gòu)(S3C6410)---lcd 顯示圖片

          作者: 時(shí)間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
          S3C6410顯示控制器包含這樣的邏輯電路:從后處理器(POST Processor)或系統(tǒng)內(nèi)存視頻緩沖數(shù)據(jù)的本地總線傳遞數(shù)據(jù)到外部LCD驅(qū)動(dòng)接口電路的邏輯電路。S3C6410包含4種接口:傳統(tǒng)的RGB接口,I80接口,標(biāo)準(zhǔn)電視編碼接口NTSC/PAL,IT-R BT.601接口。S3C6410顯示控制器支持5層圖像窗口。層圖像窗口支持:various color format,16 level alpha blending, color key, x-y position control, soft scrolling,variable window size。顯示控制器支持1BPP~24BPP 色彩的RGB格式和YCbCr格式。顯示控制器能滿足水平垂直像素,數(shù)據(jù)寬度, 接口時(shí)序, 刷新頻率等各種設(shè)置需求。顯示控制器視頻數(shù)據(jù)接口包括:RGB_VD[23:0],SYS_VD[17:0], TV_OUT。

          本文引用地址:http://www.ex-cimer.com/article/201611/317829.htm

          顯示控制器由VSFR,VDMA,VPRCS,VTIME,和視頻時(shí)鐘產(chǎn)生器。VSFR包含一些可編程的寄存器和兩個(gè)256x25的調(diào)色板內(nèi)存。這些都是用于配置顯示控制器的。VDMA專用于顯示DMA。它能將一幀的視頻數(shù)據(jù)發(fā)送到VPRCS。通過這些特定DMA,這些視頻數(shù)據(jù)可以在CPU不調(diào)停的情況下,顯示到顯示屏上。VPRCS從VDMA接收視頻數(shù)據(jù),并把接收的數(shù)據(jù)轉(zhuǎn)化成合適的數(shù)據(jù)格式,從而再發(fā)送到顯示器件上(LCD)。VTIME包含一些可編程的邏輯器件以滿足不同顯示設(shè)備的需求,如設(shè)置接口時(shí)序和刷新頻率. 產(chǎn)生:RGB_VSYNC,RGB_HSYNC, RGB_VCLK, RGB_VDEN,SYS_CS1, SYS_CS0等信號控制顯示設(shè)備。

          FIFO在VDMA中。當(dāng)FIFO為空或部分為空時(shí),VDMA就會(huì)請求數(shù)據(jù)。當(dāng)內(nèi)存中的總線仲裁接收到這樣的傳輸請求時(shí),就會(huì)從系統(tǒng)內(nèi)存向內(nèi)部FIFO傳輸4/8/16連續(xù)的字。每個(gè)FIFO有64個(gè)字,同時(shí)FIFO的使用大小又有數(shù)據(jù)的傳輸速率決定。顯示控制器有5個(gè)FIFO,主要是為了滿足5個(gè)圖像層的使用。在每個(gè)屏幕顯示模式中,只有一個(gè)FIFO被使用。VPRCS通過FIFO提取數(shù)據(jù)。VPRCS支持層功能,最多5個(gè)層。下面的圖像顯示了數(shù)據(jù)流從系統(tǒng)總線到輸出緩存的過程。

          再來看看mini6410中,nec43和顯示控制器的連接原理圖:

          這樣我們就可以參考相應(yīng)的寄存器設(shè)置,來實(shí)現(xiàn)lcd的圖片顯示了,

          原圖片:

          我的手機(jī)像素極差,,,,

          程序如下:

          初始化函數(shù):

          [cpp]view plaincopyprint?
          1. voidLCD_Init(void)
          2. {
          3. //設(shè)置VD0~15
          4. rGPICON=0xaaaaaaaa;//設(shè)置GPI0~15為LCDVD0~15
          5. rGPIPUD=0x00000000;
          6. //設(shè)置VD16~23和HSYNC、VSYNC、VDEN、VCLK
          7. rGPJCON=0x00aaaaaa;
          8. rGPJPUD=0x00000000;
          9. //LCD寄存器設(shè)置
          10. rSPCON|=(1<<0);//設(shè)置RGBI/F配置//rSPCON=rSPCON&~(0x3)|1;
          11. rMIFPCON&=~(1<<3);//設(shè)置LCD支路為一般模式
          12. rVIDCON0=(0<<29)|(0<<27)|(0<<26)|(0<<18)|(0<<17)|(0<<16)|(9<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(1<<1)|(1<<0);
          13. rVIDCON1=1<<7;//1=RGB類型LCD設(shè)備在VCLK上升沿得到視頻數(shù)據(jù)
          14. //設(shè)置屏的時(shí)序
          15. rVIDTCON0=(0x00<<16)|(0x00<<8)|(0x02<<0);
          16. rVIDTCON1=(0x2d<<16)|(0x04<<8)|(0x06<<0);
          17. rVIDTCON2=(271<<11)|(479<<0);
          18. //設(shè)置窗口格式
          19. rWINCON0=11<<2;//設(shè)置24BPP
          20. //設(shè)置窗口位置
          21. rVIDOSD0A=(0<<11)|(0<<0);
          22. rVIDOSD0B=(479<<11)|(271<<0);
          23. rVIDOSD0C=(((480*272)&0xffffff)<<0);//4.3屏幕分辨率480*272
          24. //設(shè)置Window1的開始和結(jié)束的緩存地址與地址在內(nèi)存中的存放地址以及緩存的大小
          25. rVIDW00ADD0B0=((addr>>24)<<24)|(addr&0xffffff);
          26. rVIDW00ADD1B0=(addr&0xffffff+480*272);
          27. rVIDW00ADD2=(0<<13)|(480<<0);
          28. //設(shè)置抖動(dòng)
          29. rDITHMODE=(1<<5)|(1<<3)|(1<<1)|(1<<0);
          30. //開顯示
          31. rVIDCON0|=(3<<0);
          32. rWINCON0|=(1<<0);
          33. }

          畫圖函數(shù):

          [cpp]view plaincopyprint?
          1. voidLCD_DrawPixel(unsignedintx,unsignedinty,unsignedintcolor)
          2. {
          3. if((x<480)&&(y<272))
          4. LCD_BUFFER[y][x]=color;
          5. }
          6. voidLCD_Paint_Bmp(intx0,inty0,inth,intl,constunsignedchar*bmp)
          7. {
          8. intx,y;
          9. unsignedintc;
          10. intp=0;
          11. for(y=y0;y<l;y++)
          12. {
          13. for(x=x0;x<h;x++)
          14. {
          15. //RGB888
          16. c=(bmp[p])|(bmp[p+1]<<8)|(bmp[p+2]<<16);
          17. if(((x0+x)<LCD_XSIZE)&&((y0+y))
          18. LCD_BUFFER[y0+y][x0+x]=c;
          19. p=p+3;
          20. }
          21. }
          22. }



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();