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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式處理器S3C44B0X的μC/GUI設(shè)計(jì)

          基于嵌入式處理器S3C44B0X的μC/GUI設(shè)計(jì)

          作者: 時(shí)間:2012-03-23 來(lái)源:網(wǎng)絡(luò) 收藏

          硬件平臺(tái)中,為顯示單獨(dú)分配一個(gè)專用DMA通道,這樣可大大節(jié)省CPU資源,使系統(tǒng)速度更快。內(nèi)存方面,系統(tǒng)分配一個(gè)規(guī)定大小的內(nèi)存作為實(shí)屏顯示內(nèi)存,處理器按指定的刷新頻率使用專用DMA通道將內(nèi)存中的數(shù)據(jù)寫(xiě)入LCD的顯示緩沖區(qū),實(shí)現(xiàn)LCD的圖形界面顯示。

          4. μC/GUI在上的移植

          4.1 移植步驟

          一般的移植過(guò)程可分為以下步驟進(jìn)行:

          (1)定制自己需要的μC/GUI;(2)指定硬件設(shè)備的地址,編寫(xiě)接口驅(qū)動(dòng)代碼;(3)編譯、鏈接、調(diào)試子程序;(4)測(cè)試、修改、增加自己需要的功能;(5)編寫(xiě)自己的應(yīng)用程序;限于篇幅限制,本文只給出移植的核心步驟:接口驅(qū)動(dòng)程序代碼的編寫(xiě)。

          4.2 μC/GUI與輸入輸出設(shè)備驅(qū)動(dòng)接口模塊設(shè)計(jì)

          本文以LCD驅(qū)動(dòng)接口模塊設(shè)計(jì)為例介紹在μC/GUI移植過(guò)程中LCD驅(qū)動(dòng)程序的編寫(xiě),以最終實(shí)現(xiàn)圖形顯示。

          驅(qū)動(dòng)程序主要是LCD初始化,這個(gè)函數(shù)完成對(duì)44B0X LCD控制器的配置、顯存的映射等。本文以筆者使用320×240彩色LCD為例給出初始化程序的編寫(xiě)。具體如下:

          void LCD_Init(void)

          {int i;

          LCD_DisplayOpen(FALSE);// /* 關(guān)LCD顯示 */

          for(i=0; i320*240; i++) /* 初始化顯存 */

          *(pLCDBuffer256+i) = 0x0;

          rPDATD = 0xff;;

          rPCOND = 0xaaaa; /* PDATD[7 :0]: 此處初始化為0xff */

          rPUPD = 0x00; /* PCOND[15:0]: 配置為功能端 */

          /* PUPD [7 :0]: 允許相應(yīng)位的上拉電阻(0=允許, 1=禁止) */

          rLCDCON1 = (0)|(DISMODE5)|(WDLY8)|(WLH10)|(CLKVAL12);

          /* disable,8B_SNGL_SCAN,WDLY=16clk,WLH=16clk, CLKVAL=10*/

          rLCDCON2 = (LINEVAL)|(HOZVAL10)|(LINEBLANK21);

          /* 使用彩色模式, LCDBANK=0xc000000, LCDBASEU=0x0 */

          rLCDSADDR1= (MODESEL27) | (((U32)pLCDBuffer256>>22)21) |
          M5D((U32)pLCDBuffer256>>1);

          rLCDSADDR2= M5D(((U32)pLCDBuffer256+(LCDWIDTH*LCDHEIGHT))>>1) |
          (MVAL21);

          rLCDSADDR3= PAGEWIDTH | (OFFSIZE9);

          rREDLUT = 0xfdb97531;

          rGREENLUT = 0xfdb97531; /* 設(shè)置紅綠藍(lán)三色的顏色值*/

          rBLUELUT = 0xfb73;

          rDITHMODE = 0x0;

          rDP1_2 = 0xa5a5;

          rDP4_7 = 0xba5da65;

          rDP3_5 = 0xa5a5f;

          rDP2_3 = 0xd6b;

          rDP5_7 = 0xeb7b5ed;

          rDP3_4 = 0x7dbe;

          rDP4_5 = 0x7ebdf;

          rDP6_7 = 0x7fdfbfe; /* 使能8位單掃描/

          rLCDCON1 = (1)|(DISMODE5)|(WDLY8)|(WLH10)|(CLKVAL12);

          Delay(5000);

          LCD_BkLight(TRUE); /* 開(kāi)背光 */
          LCD_DisplayOpen(TRUE); /* 打開(kāi)LCD顯示 */}

          完成如上LCD驅(qū)動(dòng)以后, 再設(shè)置相應(yīng)的中斷服務(wù)子程序(IS), μC/GUI即可以穩(wěn)定地運(yùn)行在硬件平臺(tái)上。



          評(píng)論


          相關(guān)推薦

          技術(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); })();