LPC2478自带LCD控制器驱动4.3寸TFT 新手入门求问
时间:10-02
整理:3721RD
点击:
本人刚接触ARM,最近网上下的例程学习用LPC2478自带LCD控制器驱动4.3TFT,例程中有设置像素点颜色、清屏函数 如下:
//////////////////////////////////////////////////
#define SECTION_X(x, y) x
#define SECTION_Y(x, y) y
/////////////////////////////////////////////////////
extern __align(8) volatile unsigned short LCD_BUFFER[272][480];
///////////////////////////////////////////////////////
#define lcd_SetPixel(x, y, uicolor) \
do { \
if((x < 480) && (y < 272)) { \
LCD_BUFFER[SECTION_Y(x, y)][SECTION_X(x, y)] = (unsigned short)uicolor; \
} \
} while (0)
///////////////////////////////////////////////////////////////////////////////////////
void lcd_Clear (unsigned int uicolor)
{
int ix, iy;
for (iy = 0; iy <272; iy++) {
for (ix = 0; ix < 480; ix++) {
LCD_BUFFER[SECTION_Y(ix, iy)][SECTION_X(ix, iy)] = (unsigned short)uicolor;
}
}
}
这两个个函数并未操作LPC相关寄存器啊,他是怎么讲数据传到TFT上的。
还有 我手头有块LG4.3TFT液晶 他的datasheet里只提供了一个Blank Period 我知道 Blank Period = Back porch+Front porch+Pulse width
但是这三个 “Back porch” “Front porch” “Pulse width”咋算出来
新手茫茫然探索中.还望各位高手有使用过的高手不吝赐教!
不胜感激。
//////////////////////////////////////////////////
#define SECTION_X(x, y) x
#define SECTION_Y(x, y) y
/////////////////////////////////////////////////////
extern __align(8) volatile unsigned short LCD_BUFFER[272][480];
///////////////////////////////////////////////////////
#define lcd_SetPixel(x, y, uicolor) \
do { \
if((x < 480) && (y < 272)) { \
LCD_BUFFER[SECTION_Y(x, y)][SECTION_X(x, y)] = (unsigned short)uicolor; \
} \
} while (0)
///////////////////////////////////////////////////////////////////////////////////////
void lcd_Clear (unsigned int uicolor)
{
int ix, iy;
for (iy = 0; iy <272; iy++) {
for (ix = 0; ix < 480; ix++) {
LCD_BUFFER[SECTION_Y(ix, iy)][SECTION_X(ix, iy)] = (unsigned short)uicolor;
}
}
}
这两个个函数并未操作LPC相关寄存器啊,他是怎么讲数据传到TFT上的。
还有 我手头有块LG4.3TFT液晶 他的datasheet里只提供了一个Blank Period 我知道 Blank Period = Back porch+Front porch+Pulse width
但是这三个 “Back porch” “Front porch” “Pulse width”咋算出来
新手茫茫然探索中.还望各位高手有使用过的高手不吝赐教!
不胜感激。
lcd_SetPixel 和lcd_Clear 都是与系统无关的函数 为了系统的移植性好 具体实现是要修改底层的驱动
Back porch” “Front porch” “Pulse width这几个参数都是厂家手册给出的
LPC2478属于ARM7系列 不建议新手学习了 可以考虑使用M3的芯片了
可以看一下这篇文章:
Video Timing Background:http://www.eecg.toronto.edu/~tm4/rgbout.html
我没接触过你的这个开发板和LCD;
从你提供的程序和数组定义来看,你这个LCD属于内存空间映射型LCD控制器,每个像素点由一个短整型(16bit)控制显示颜色;所以,对处于内存空间的显示缓冲区LCD_BUFFER写入数据,就会直接引起显示像素改变,就看不到对‘相关寄存器’的操作了,应该说LCD_BUFFER就是相关寄存器;
‘LG4.3TFT液晶’的哪些参数像是光栅扫描类显示器(如CRT)的显示参数,你这个‘LG4.3TFT液晶’是不是可以接VGA或DVI接口的?型号是多少?