图片过大(eg:1024*768)显示出错的问题
例子2.1更改图片显示程序:可显示任意大小的图片(屏幕范围内的内容)void Paint_Bmp(int x0,int y0,int h,int l,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 | (bmp<<8) ;//图片的每个像素点由两组数据组成
if ( ( (x0+x) < SCR_XSIZE_TFT) && ( (y0+y) < SCR_YSIZE_TFT) )
{
LCD_BUFFER = c ;
p = p + 2 ;
}
else//超过相框边缘的数据跳过
{
if((x0+x)==SCR_XSIZE_TFT)
{
p=p+2*(x0+h-SCR_XSIZE_TFT);
}
if((y0+y)>=SCR_YSIZE_TFT)
{
p=p+2*(y0+l-SCR_YSIZE_TFT);
}
}
}
}
}
注:
{
但是这个程序在图片过大(eg:780*545)的时候会出现错误:显示这个程序结果
void HaltDabort(void)
{
Uart_Printf("Dabort exception!!!\n");
while(1);
}
} 求高人指点一下~~ U32 c; 是不是这里的问题。
一个像素是16位的 呃。。。 应该不是这个问题 4# WTW11897
主要是后面的那个中断错误时怎么来的不是很清楚。内存什么的分配设置的问题吗? 是不是数组越界了呀,仔细看看程序
页:
[1]