毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 嵌入式 >> 正文

如何去定义18bpp的gBitMasks数组

更新时间:2012-11-16:  来源:毕业论文

弄了好多天都搞不定。如何去定义18bpp的gBitMasks数组。16bpp和24bpp的是如下:
#if (LCD_BPP == 16)
ULONG gBitMasks[] = {0xF800, 0x07E0, 0x001F};
#elif (LCD_BPP == 32)
ULONG gBitMasks[] = {0x00ff0000, 0x0000ff00, 0x000000ff};
如果我现在修改24bpp的使之可以支持18bpp的,该怎么改??
我试过
//#elif (LCD_BPP == 18)
//ULONG gBitMasks[] = {0x003F0000, 0x00003F00, 0x0000003F}
//#elif (LCD_BPP == 18)
//ULONG gBitMasks[] = {0x0003F000, 0x00000FC0, 0x0000003F}
//#elif (LCD_BPP == 18)
//ULONG gBitMasks[] = {0x00FC0000, 0x0003F000, 0x00000FC0}
感觉都不行,墙角各位大侠一下。
另外只要设置跟原来24bpp一样的,那不论怎么修改GPF寄存器的值都是一样效果。是不是修改18bpp的,最主要就是处理好gBitMasks这个数组??

内存中真的是以18bit存储的吗?硬件上阵的只是接了18根线?

我也一直没有搞明白RGB666在内存中式一个怎么样的方式存储的。因为在内存中存储一般都是字节的倍数,不够的就补上去。我的理解是RGB666在软件是24bit的吗?具体我也不了解。等待熟手出现啊。

我倒是最近有做过调试过一个18bit的。硬件上接了18根。但是实际上在内存中存储时RGB666的形式存储的。扔给控制器都就由控制器来去把它搞成18bit。

对了一般手册上会有各种格式在内存中的布局图,我刚刚看了下6410 spec,24bpp是用的32bit,18bit也是32bit的只要按照这些格式把数据堆在内存中就行。
最简单的LCD的控制器初始化就是在EBOOT里面。仔细看看EBOOT显示logo那部分的代码就OK

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。