工具/软件:Starterware
调色板 RAM 能否转换为16 BPP (每像素位数)输出?
我已将微控制器的16个 IO 连接到 LCD RGB 输入、但通过通读数据表可以看出 RAM 调色板只能与12 BPP 配合使用。 这是真的吗? 我有错误吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Starterware
调色板 RAM 能否转换为16 BPP (每像素位数)输出?
我已将微控制器的16个 IO 连接到 LCD RGB 输入、但通过通读数据表可以看出 RAM 调色板只能与12 BPP 配合使用。 这是真的吗? 我有错误吗?
Tiva Ware 似乎与数据表相矛盾。 数据表显示、RAM 调色板仅将1、2、4或8位转换为12位。 "LCD 调色板 RAM 使用一个12位输出代码、这样就有可能有4096个颜色选项可供选择"
但是,Tivaware 有一个函数 LCDRasterConfigSet(),该函数接受 rraster_FMT_ACTIVE_PALETTIZED_16BIT 的归档。 这在某种程度上基于我在下面的帖子。
此参数是否仅对其他微控制器有效、或者我读取的文档不正确?
16位调色板 RAM 模式有点工作。 我尝试单独设置每个位、以查看什么是、结果没有保证:
0x8000 =亮绿色
0x4000 =无(黑色)
0x2000 =无
0x1000 =无
0xF000 =亮绿色(与0x8000相同)
0x0800 =中等红色
0x0400 =无
0x0200 =深红色
0x0100 =非常微弱的红色
0x0F00 =亮红色
0x0080 =无
0x0040 =无
0x0020 =无
0x0010 =无
0x00F0 =无
0x0008 =蓝色
0x0004 =深蓝色
0x0002 =深蓝色
0x0001 =深蓝色
0x000F =亮蓝色
0xFFFF =白色、浅色调为粉红色
我不明白为什么有些位不起作用。 我对这些位的顺序感到进一步困惑。 高位应为蓝色、中间为绿色、下方为读取值(请参阅原理图屏幕截图)。 但这次试错测试显示上位是绿色的、中间位是红色的、低位是蓝色的! 这不仅仅是反向的。 它全部交换。
您好、Peter、
从硬件角度来看、RAM 调色板的范围限制为8 BPP。
数据表特别指出:"每像素12、16和24位不使用调色板 RAM、因为会发生原始数据传输。" 图26-3进一步支持这一点、其中显示对于有源 LCD、16和24 BPP 应直接连接到输出引脚。
在 driverlib 中、您引用的光栅_FMT_ACTIVE_PALETTIZED_16BIT 设置为:"选择活动矩阵显示并使用带调色板查找的1、2、4或8bpp 帧缓冲区。 输出颜色数据以16位5:6:5格式进行描述。" 我相信这就是芯片为您提供16引脚输出的方式。 我目前还不清楚查找是如何完成的、但这些信息是否为您提供了足够的背景来修复您的设计?
拉尔夫
我想对我原来的问题有一个肯定或否定的答案,似乎答案是否定的
数据表显示"LCD 调色板 RAM 使用一个12位输出代码、这样就有可能有4096种颜色选项可供选择"
此外、图26-4是16bpp 调色板 RAM 的有力案例。 数据结构只有12位来定义颜色。 4位不能保持未定义!
"无"位实际上是完全有意义的。 图26-4显示了数据变为4位类型、4位为红色、4位为绿色、最后4位为蓝色。 在我的原理图屏幕截图中、红色和蓝色的交换不正确。 由于端字节序较小、因此也会交换字节。
一切都很好、因为我不需要16位颜色。 12位颜色仍然为我提供了更多紫色的阴影、这比我知道如何处理的颜色要多。
Raster FMT_ACTIVE_PALETTIZED_16BIT 似乎是一个误导性宏。 我检查了具有内置 LCD 控制器的其他 TM4C 微控制器。 它们都不使用调色板来创建16位颜色。 数据表胜过 API。 它是最后一句话。