一 块LCD屏显示图像,不但需要LCD驱动器,还需要有相应的LCD控制器。
RGB三原色,各8位,一个色素24位。
HSYNC、VSYNC 水平方向、垂直方向同步信号。这样可以实现当一行到头时,转到第二行;当一屏满时,重新转到起始位置。
VCLK:时钟,每来一个时钟,就打出一个像素。
1、怎么写LCD程序?
1)设置LCD控制器
a、屏幕长、宽,打出多少个像素之后发出HSYNC,多少行之后发出VSYNC。
b、分辨率
c、时间参数 打完一行后多长时间跳到下一行等等。
2)分配显存
a.在DDR中分配一块区域存贮显存的值,这块区域的值会不断更新,LCD控制器周而复始的从这里取出像素值显示在LCD上。
b.告诉LCD控制器在哪里取像素值。
3)设置像素颜色格式
程序代码:23th_lcd
1> lcd.c 中主要完成各种寄存器的初始化,使LCD工作起来
RGB三原色,各8位,一个色素24位。
HSYNC、VSYNC 水平方向、垂直方向同步信号。这样可以实现当一行到头时,转到第二行;当一屏满时,重新转到起始位置。
VCLK:时钟,每来一个时钟,就打出一个像素。
1、怎么写LCD程序?
1)设置LCD控制器
a、屏幕长、宽,打出多少个像素之后发出HSYNC,多少行之后发出VSYNC。
b、分辨率
c、时间参数 打完一行后多长时间跳到下一行等等。
2)分配显存
a.在DDR中分配一块区域存贮显存的值,这块区域的值会不断更新,LCD控制器周而复始的从这里取出像素值显示在LCD上。
b.告诉LCD控制器在哪里取像素值。
3)设置像素颜色格式
程序代码:23th_lcd
1> lcd.c 中主要完成各种寄存器的初始化,使LCD工作起来
void lcd_init(void)
{
/* 1. 设置相关GPIO引脚用于LCD */
GPICON = 0xaaaaaaaa; /* gpi0~gpi15用作lcd_vd[0~15] */
GPJCON = 0xaaaaaaa; /* gpj0~gpi11用作lcd */
GPFCON &= ~(0x3<<28);
GPFCON |= (1<<28); /* GPF14用作背光使能信号 */
GPECON &= ~(0xf);
GPECON |= (0x1); /* GPE0用作LCD的on/off信号 */
/* 2. 初始化6410的display controller
* 2.1 hsync,vsync,vclk,vden的极性和时间参数
* 2.2 行数、列数(分辨率),象素颜色的格式
* 2.3 分配显存(frame buffer),写入display controller
*/
MIFPCON &= ~(1<<3); /* Normal mode */
SPCON &= ~(0x3);
SPCON |= 0x1; /* RGB I/F style