管理提醒: 本帖被 qq2440 从 micro2440技术交流专区 移动到本区(2013-11-18)
LCD裸机测试程序中:
在LCD屏幕上指定坐标点画一个指定大小的图片
**************************************************************/
static void Paint_Bmp(int x0,int y0,int h,int l,const unsigned char *bmp)
{
int x,y;
U32 c;
int p = 0;
for( y = 0 ; y < l ; y++ )
{
for( x = 0 ; x < h ; x++ )
{
c = bmp[p+1] | (bmp[p]<<8) ;---------------------------------------
if ( ( (x0+x) < SCR_XSIZE) && ( (y0+y) < SCR_YSIZE) )
LCD_BUFFER[y0+y][x0+x] = c ;
p = p + 2 ;
}
}
}
疑问:
c = bmp[p+1] | (bmp[p]<<8) ;
1.在送数据的时候,为什么要把bmp[p] 取的数据放在高8位?
2.我的LCD屏是统宝3.5, 硬件接口是
R0~R5: LCD_VD18~LCD_VD23
G0~G5: LCD_VD11~LCD_VD15
B0~B5: LCD_VD2~LCD_VD7
但在送数据的时候却是,好象是把数据送到LCD_VD0~LCD_VD15, 程序如下, 请教高手,这是什么问题?
Lcd_ClearScr( (0x1f<<11) | (0x00<<5) | (0x00) );
static void Lcd_ClearScr( U16 c)
{
unsigned int x,y ;
for( y = 0 ; y < SCR_YSIZE ; y++ )
{
for( x = 0 ; x < SCR_XSIZE ; x++ )
{
LCD_BUFFER[y][x] = c ;
}
}
}