s3c2440 LCD 配置的一点答疑--极性为什么有的不反转,有的不反转,还有字节交换使能这些是什么意思?都是LCDCON5寄存器的

    技术2022-06-27  62

     

     

    对于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.


    最新回复(0)