新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種嵌入式linux系統GUI的實現

        一種嵌入式linux系統GUI的實現

        作者: 時間:2010-05-10 來源:網絡 收藏

        0 引言

        本文引用地址:http://www.104case.com/article/151870.htm

        操作的快速發展,迫切需求一種簡潔的人機交互界面,為此,本文介紹了如何在FrameBuffer基礎上設計自己的的簡單方法。

        1 顯示原理

        1.1 顏色表示

        顏色是所有繪圖操作的基礎。16位的LCD屏一般需要2個字節來表示。16位RGB格式一般可分為RGB565與RGB5551兩種格式。其中RGB565格式如表1所列,而其RGB5551格式如表2所列。表中的R為紅色分量,G為綠色分量,B為藍色分量。

        由于顏色采用的是RGB565規則。因此。基本顏色,即紅色、綠色、藍色按照RGB565規則可分別為0xf800、0x07e0、Ox001f。由此可見,如果用十六進制直接表示顏色會非常不便。目前,普遍為軟件工程師所接受的顏色表示方式為24位的RGB,其中R、G、B三個分量各占用一個字節,范圍是0~255。因此,應該為MIS軟件提供一個從24位RGB轉化為16RGB的接口。該接口用宏來的具體方式如下:

        #define RGB(r,g,b) (((r>>3)11)O((g>>2)5)O(b>>3))

        1.2 畫點操作

        圖形設備接口的最基本操作為畫點,任何其它繪圖函數都是基于畫點來完成的。其原理是以屏的左上角第一個像素點為(0,0)點,向右為x軸,向下為y軸建立坐標系,只要提供某點的橫坐標x,縱坐標y和顏色值,就可以通過一定的算法找到(x,y)所表示的地址,然后將該地址上的2個字節替換為指定的顏色值。例如有一塊640×480×16的LCD,像素的首地址為0x40000000,那么,其中的第2行、第3列的像素位置如圖1所示。

        如果要把第2行、第3列的像素由原來的白色(0xfff)變為黑色(0x0000)。那么,就可以根據下面的尋址方式找到地址:

        最終地址=首地址+y×2×屏的寬度+x×2

        其中,首地址表示第1行第1列像素所對應的地址。由上式,該點的地址=0x40000000+2×2×0x280+3×2=0x40000A06。那么0x40000A06地址對應的數據應為十六位顏色的低字節部分,而0x40000A07地址對應的數據應為十六位顏色的高字節部分。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 资源县| 珠海市| 汾西县| 宁安市| 阳新县| 磐安县| 陇川县| 鄂托克旗| 遂宁市| 和林格尔县| 礼泉县| 南和县| 镇雄县| 阿图什市| 永清县| 鸡西市| 莫力| 新闻| 化州市| 鹤峰县| 新兴县| 富阳市| 太保市| 连州市| 卢湾区| 延安市| 彰武县| 东莞市| 奎屯市| 左贡县| 锡林郭勒盟| 屏东县| 正镶白旗| 泰安市| 正安县| 高雄市| 九台市| 蚌埠市| 华容县| 田林县| 仁寿县|