图解LCD硬件原理 && 调色板与Framebuffer原理 |
您所在的位置:网站首页 › 指针工作原理图解 › 图解LCD硬件原理 && 调色板与Framebuffer原理 |
001LCD硬件原理
LCD操作原理![]() ![]() ![]() ![]() ![]() ![]() ![]() 可以通过调整四边黑框调整屏幕边框 BPP(bit per pixel)BPP:在FrameBuffer中每个像素占据多少位, 硬件上LCD的BPP是确定的 但是可以对LCD进行封装16条线,每个像素占16位数据,16BPP![]() 功能: 1.从内存中(FrameBuffer)取出某个像素的数据:把FrameBuffer的地址告诉LCD控制器,BPP,分辨率 2.配合其他信号把数据发送给LCD:把时序告诉LCD控制器,设置引脚的极性 BLOCK DIAGRAM16BPP调色板[ palette] 本质:内存 16BPP中,本来用16bit表示1像素,也可用利用调色板,用8位表示;8BPP:伪彩色;16/24BPP:真彩色。那么当使用像素深度为8pp时候,像素深度和我们的带宽不一致,我们的颜色要用16位表示,如果直接用上肯定不可能,那我们就可以选择用调色板,调色板中存放了256种16bpp的颜色,这时候我们color存放的就不是真实的颜色值了,而是存放的是调色板中256种颜色的索引,成线性关系一一对应,这样我们大大减轻了系统的负担。用16bpp还是8bpp这得取决实际情况,16bpp肯定比8pp清晰,但同时带来的负荷也更加重。 过程:FrameBuffer中8bit —> LCD控制器 —> 调色板中取16bit【用8bit作为索引,取出真正的颜色】 —> LCD003LCD编程_框架与准备![]() ![]() ![]() S3C2440_controller.c:根据S3C2440数据手册,设置LCD控制器相关寄存器 引脚初始化代码语言:javascript复制void jz2440_lcd_pin_init(void) { /* 初始化引脚 : 背光引脚*/ GPBCON &= ~0x3; GPBCON |= 0x01; /* 初始化引脚 : LCD专用引脚*/ GPCCON = 0xaaaaaaaa; GPDCON = 0xaaaaaaaa; /* PWREN */ GPGCON |= (3bpp == 8 ? 0xb :\ plcdparams->bpp == 16 ? 0xc:\ 0xd; /* 0xd:24bpp */ LCDCON1 = (clkval =y2) { fb_put_pixel(x1,y1,color); if(e>0){x1+=1;e-=dy;} y1-=1; e+=dx; } } } } else //dx= 0) // dy>=0 { if(dx>=dy) // 4/8 octant { e=dy-dx/2; while(x1>=x2) { fb_put_pixel(x1,y1,color); if(e>0){y1+=1;e-=dx;} x1-=1; e+=dy; } } else // 3/8 octant { e=dx-dy/2; while(y10){x1-=1;e-=dy;} y1+=1; e+=dx; } } } else // dy=dy) // 5/8 octant { e=dy-dx/2; while(x1>=x2) { fb_put_pixel(x1,y1,color); if(e>0){y1-=1;e-=dx;} x1-=1; e+=dy; } } else // 6/8 octant { e=dx-dy/2; while(y1>=y2) { fb_put_pixel(x1,y1,color); if(e>0){x1-=1;e-=dy;} y1-=1; e+=dx; } } } } } 009显示文字字符显示原理 ![]() 显示字符时,坐标表示 ![]() |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |