|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
.
.
#if (LCD_TYPE==MLCD_240_320)
#define SCR_XSIZE (480)
#define SCR_YSIZE (640)
.
.
.
#define ARRAY_SIZE_G16 (SCR_XSIZE/2*SCR_YSIZE)
.
.
unsigned int (*frameBuffer16)[SCR_XSIZE/8];
.
.
void Lcd_Init(int depth)
{
switch(depth)
{case 16:
if((U32)frameBuffer16==0)
{
//The total frame memory should be inside 4MB.
//For example, if total memory is 8MB, the frame memory
//should be in 0xc000000~0xc3fffff or c400000~c7fffff.
//But, the following code doesn't meet this condition(4MB)
//if the code size & location is changed..
frameBuffer16=(unsigned int (*)[SCR_XSIZE/8])malloc(ARRAY_SIZE_G16);
.
.
.
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void _PutPixelG16(U32 x,U32 y,U8 c)
{
if(x<SCR_XSIZE && y<SCR_YSIZE)
frameBuffer16[(y)][(x)/8]=( frameBuffer16[(y)][x/8] & ~(0xc0000000>>((x)%8)*4) )
| ( (c)<<((8-1-((x)%8))*4) );
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
在这段函数中framebuffer16所指向的首地址是0xc000000吗?在哪里有定义的吗?还是直接指向的?哪位高手能解释一下吗? |
|