s3c2440 LCD 配置的一點答疑--極性爲什麼有的不反轉,有的不反轉,還有字節交換使能這些是什麼意思?都是LCDCON5寄存器的

 

 

對於RGB16來說,一個像素佔2個字節,這樣2個像素組合成1個字.
假如LCD面板上的某一行像素排列是P1 P2 P3 P4 P5 P6 P7 P8.
且我們定義unsigned int LCD_BUFFER[8]來存放像素數據.
那麼LCD_BUFFER[0],LCD_BUFFER[1].....LCD_BUFFER[7]就是對應這8個點的數據.
這樣LCD控制器拿到地址LCD_BUFFER後會以LCD_BUFFER爲起始地址取出一個字即4個字節去刷屏幕,這時候它犯難了,
1)到底是這個字的高16位還是低16位是第一個像素???
所以這時候我們得設置HWSWP = 0,即不進行半字交換,這樣高16位就表示是第一個像素的,低16位是第二個像素的.這樣做的原因是我們的程序是用大端格式編譯的,比如0x12345678,在大端格式下就是
B31   B24      B23   B16        B15   B8       B7  B0
    0x12            0x34                0x56            0x78

2)當LCD控制器知道高16位是第一個像素的時候,又犯難了
這16位數據,高8bit和低8bit是怎麼安排的,
  RGB16,我們採用的是 565的方式,紅色有5bit,綠色6bit,藍色5bit.
B15  B11    B10    B5    B4  B0
   R                  G           B

也就是沒有字節交換,所以要設置BSWP = 0,即字節交換爲0.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章