由於顏色資料數值是十六位資料,參照24位元模式,每畫素
24位編碼的
rgb值:使用三個無符號八位整數(0到
255)表示紅色,綠色和藍色的強度。這是當前主流的標準表示方法,用於真彩色和
jpeg
或者tiff
等影象格式檔案的通用顏色交換。這種模式的十六種基本顏色為下:
由於16
位元模式分配給每種原色各為
5位元,但是由於人眼對於綠色分辨的色調更為精確,故綠色為
6位元,所以這裡使用的
rgb為5:
6:5模式。下面的簡單計算讓我們更明白顏色的由來:
red:(0x1f<<11)|(0x00<<5)|(0x00), 即對應二進位制數:11111 000000 00000
green:(0x00<<11)|(0x3f<<5)|(0x00),即對應二進位制數:00000 111111 00000
blue:(0x00<<11)|(0x00<<5)|(0x1f), 即對應二進位制數:00000 000000 11111
white:(0x1f<<11)|(0x3f<<5)|(0x1f), 即對應二進位制數:11111 111111 11111
black:(0x00<<11)|(0x00<<5)|(0x00),即對應二進位制數,00000 000000 00000
以綠色為例:0x3f<<5= 0000 0000 0011 1111=0000 0111 1110 0000
0x00<<11=0000 0000 0000 0000<<11=0x00
0x00=0000 0000 0000 0000
三者相與為0000 0111 1110 0000,
則按照5:6
:5的配色方案為
00000 111111 00000
同理,紅色,藍色,白色和黑色都是這樣計算出來的。
那下面的**也就不難理解了。
前面兩個由於在16
位元模式下紅色和綠色的十進位制值在(0,
31)之間,所以只要在此之間進行運算即可:
(ii<<11)
和((ii-31
)<<5),
如在ii在(0
,31)的開區間內,計算為在
00000 000000 00000到
11111 000000 00000
之間,即為紅色,且紅色隨迴圈逐漸加深。同理,
ii在(32,
94)的開區間之間取值時,計算為
00000 000001 00000
到00000 111111 00000
之間;後面的顏色配色也是這樣計算而來的,就不一一例舉了。
關於16
位元模式和
24位元模式,由於
2^16=65536, 2^24=16777216,
這就是我們經常聽說的
6.5萬色和
1600
萬色了。
TQ2440背光控制
控制lcd背光就是控制s3c2440的lcd控制的lcd pwren腳lcdcon5暫存器pwren位控制lcd是否輸出。對linux 2.6.30.4核心進行移植。新建乙個backlight.c檔案放到 drivers video 目錄下。內容如下 include include include ...
《TQ2440載入Hello world驅動模組》
經過將近乙個月都時間終於按照手冊把linux核心移植完了,接下來要開始驅動模組的移植了,在網上查了一些資料,總結如下 目標平台 tq2440 arm9 核心版本 linux 2.6.25 前提 宿主機上已安裝交叉編譯工具,因為這個在linux核心移植的時候就使用過了,這裡就不說了。進入正題 1 首先...
TQ2440移植strace工具
一 以下是網上的乙個方法,但是不適合tq2440 主要是主機靜態連線的庫我沒有,呵呵 strace工具是乙個非常強大的工具,是除錯程式的好工具。要移植到arm平台,就需要使用交叉編譯工具編譯生成靜態鏈結的可執行檔案。具體步驟如下 2.解壓。3.配置。configure host arm none l...