天嵌 ARM开发社区

 找回密码
 注册
查看: 4201|回复: 15

我在做24bit的图片试验时,定义了6张图片,运行时第四张图片的下半部分开始有花点?

[复制链接]
桂海科技 发表于 2010-8-11 01:30:45 | 显示全部楼层 |阅读模式
我在做24bit的图片试验时,一共定义了6张24位的图片,结果程序可以运行,但是第四张图片的下半部分开始有花点,更换图片的编译顺序后,发现放在前面的三张总是正常的,可是后三张就出现花点,图片我是用image2lcd软件转的,而且为了方便我转成32位的了,哪位能帮在下解决一下,谢谢啦!还有一点就是如果只定义三张图片,那么无限循环地显示都不会出错的.
machoe 发表于 2010-8-15 09:59:09 | 显示全部楼层
请将代码帖出来,我来参考一下。
wuchguang 发表于 2010-8-16 08:41:40 | 显示全部楼层
你最好先使用一张图片试一下,如果还是出现了那花屏,可能是你转的32位不行,就要先转成24位后再看。如果没出现花屏的话,你可以搜索一下论坛上的帖子,有关于它的解决方法。
 楼主| 桂海科技 发表于 2010-8-17 01:42:47 | 显示全部楼层
代码:
主函数图片显示循环
while(1)
{
  Paint_Bmp(0, 0, 320, 240, gImage_logo1);
  Delay(500);   
  Paint_Bmp(0, 0, 320, 240, gImage_logo2);
  Delay(500);  
  Paint_Bmp(0, 0, 320, 240, gImage_logo3);
  Delay(500);
  Paint_Bmp(0, 0, 320, 240, gImage_logo4);   
  Delay(500);
  Paint_Bmp(0, 0, 320, 240, gImage_logo5);
  Delay(500);  
  Paint_Bmp(0, 0, 320, 240, gImage_logo6);
  Delay(500);
  Delay(500);
  Delay(500);
  Delay(500);   
}
BUFFER定义:   
volatile U32 LCD_BUFFER[SCR_YSIZE_TFT][SCR_XSIZE_TFT];
LCD的初始化函数:
void Lcd_Init(void)
{
rGPCUP  = 0xffffffff;
rGPCCON = 0xaaaa02a9;
  
rGPDUP  = 0xffffffff;
rGPDCON=0xaaaaaaaa; //Initialize VD[15:8]
rLCDCON1=(CLKVAL_TFT<<8)|(MVAL_USED<<7)|(PNRMODE<<5)|(BPPMODE<<1)|0;
     // TFT LCD panel,24bpp TFT,ENVID=off
rLCDCON2=(VBPD<<24)|(LINEVAL_TFT<<14)|(VFPD<<6)|(VSPW);
rLCDCON3=(HBPD<<19)|(HOZVAL_TFT<<8)|(HFPD);
rLCDCON4=(MVAL<<8)|(HSPW);
rLCDCON5 = (0<<12) | (0<<10) | (1<<9) | (1<<8) | (0<<7) | (0<<6) | (1<<3)  |(BSWP<<1) | (HWSWP);
rLCDSADDR1=(((U32)LCD_BUFFER>>22)<<21)|M5D((U32)LCD_BUFFER>>1);
rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_TFT*LCD_YSIZE_TFT*4))>>1 );
rLCDSADDR3=(((SCR_XSIZE_TFT-LCD_XSIZE_TFT)/1)<<11)|(LCD_XSIZE_TFT*2);
rLCDINTMSK|=(3); // MASK LCD Sub Interrupt
rTCONSEL &= (~7) ;     // Disable LPC3480
rTPAL=0; // Disable Temp Palette
}
图片显示函数:
void Paint_Bmp(int x0,int y0,int h,int l,unsigned char bmp[])
{
int x,y;
U32 c;
unsigned int p = 0;

    for( y = y0 ; y < l ; y++ )
    {
     for( x = x0 ; x < h ; x++ )
     {
      c =  (bmp[p+3]<<24)|(bmp[p+2]<<16)| (bmp[p+1]<<8)|bmp[p] ;
   if ( ( (x0+x) < SCR_XSIZE_TFT) && ( (y0+y) < SCR_YSIZE_TFT) )
    LCD_BUFFER[y0+y][x0+x] = c ;
   
      p = p + 4 ;
     }
    }
}
图片的数组格式:
const unsigned char gImage_logo1[307200] = { /* 0X00,0X20,0X40,0X01,0XF0,0X00,0X00,0XE4, */
0X40,0X49,0X56,0X00,0X2F,0X34,0X43,0X00,0X2B,0X2F,0X3A,0X00,0X26,0X29,0X2D,0X00,
0X25,0X29,0X24,0X00,0X2E,0X30,0X24,0X00,0X35,0X35,0X23,0X00,0X32,0X31,0X1D,0X00,
0X2B,0X27,0X14,0X00,0X34,0X30,0X1E,0X00,0X31,0X2C,0X1D,0X00,0X2B,0X28,0X1A,0X00,
0X27,0X26,0X18,0X00,0X26,0X27,0X17,0X00,0X25,0X2B,0X18,0X00,0X27,0X31,0X1A,0X00,
0X28,0X35,0X1D,0X00,0X19,0X26,0X10,0X00,0X1A,0X26,0X12,0X00,0X1D,0X29,0X15,0X00,
0X1F,0X2B,0X17,0X00,0X20,0X2C,0X18,0X00,0X20,0X2C,0X18,0X00,0X1F,0X2B,0X17,0X00,
0X1E,0X2A,0X16,0X00,0X22,0X2E,0X1A,0X00,0X1D,0X29,0X15,0X00,0X1F,0X2B,0X17,0X00,
0X1B,0X27,0X13,0X00,0X24,0X2F,0X1B,0X00,0X1F,0X2B,0X17,0X00,0X22,0X2D,0X19,0X00,
0X1E,0X29,0X15,0X00,0X26,0X2D,0X18,0X00,0X27,0X2E,0X19,0X00,0X27,0X2F,0X18,0X00,
0X26,0X2E,0X17,0X00,0X26,0X2F,0X15,0X00,0X28,0X31,0X17,0X00,0X2C,0X35,0X1B,0X00,
0X30,0X39,0X1F,0X00,0X2B,0X32,0X1D,0X00,0X36,0X3D,0X28,0X00,0X43,0X49,0X38,0X00,
0X49,0X4F,0X3E,0X00,0X48,0X4C,0X40,0X00,0X48,0X4C,0X40,0X00,0X4B,0X4E,0X45,0X00,
0X50,0X53,0X4A,0X00,0X4C,0X54,0X49,0X00,0X4B,0X55,0X49,0X00,0X4C,0X54,0X49,0X00,
0X4A,0X54,0X48,0X00,0X4C,0X54,0X49,0X00,0X4C,0X56,0X4A,0X00,0X4E,0X56,0X4B,0X00,
0X4D,0X57,0X4B,0X00,0X4C,0X54,0X49,0X00,0X4A,0X54,0X48,0X00,0X4B,0X53,0X48,0X00,
0X4A,0X54,0X48,0X00,0X4B,0X53,0X48,0X00,0X4B,0X55,0X49,0X00,0X4E,0X56,0X4B,0X00,
0X4D,0X57,0X4B,0X00,0X44,0X4E,0X41,0X00,0X48,0X52,0X45,0X00,0X4E,0X59,0X49,0X00,
0X52,0X5D,0X4D,0X00,0X52,0X5D,0X4D,0X00,0X4E,0X59,0X49,0X00,0X4A,0X54,0X43,0X00,
0X46,0X50,0X3F,0X00,0X51,0X59,0X48,0X00,0X5E,0X66,0X55,0X00,0X65,0X6E,0X5A,0X00,
0X68,0X71,0X5D,0X00,0X6A,0X70,0X5D,0X00,0X58,0X5E,0X4B,0X00,0X48,0X4E,0X3B,0X00,
0X4B,0X51,0X40,0X00,0X4A,0X50,0X45,0X00,0X52,0X5A,0X50,0X00,0X45,0X4D,0X42,0X00,
0X47,0X4F,0X44,0X00,0X4B,0X51,0X46,0X00,0X56,0X5C,0X51,0X00,0X51,0X55,0X49,0X00,
0X58,0X5C,0X50,0X00,0X56,0X5B,0X4C,0X00,0X4C,0X51,0X42,0X00,0X4C,0X4F,0X3F,0X00,
0X56,0X59,0X49,0X00,0X5A,0X5D,0X4D,0X00,0X59,0X5C,0X4C,0X00,0X60,0X64,0X51,0X00,
0X6C,0X6F,0X5F,0X00,0X63,0X66,0X57,0X00,0X5F,0X61,0X55,0X00,0X64,0X66,0X5A,0X00,
0X5F,0X61,0X55,0X00,0X60,0X62,0X56,0X00,0X5D,0X5F,0X53,0X00,0X56,0X58,0X4C,0X00,............................

文件的编译顺序:
2440init.s
2440slib.s
main.c
nand.c
2440lib.c
mmu.c
LCD_TFT.c
logo1.c
logo2.c
logo3.c
logo4.c
logo5.c
logo6.c
六个logoX文件对应六张24bit的图片数组,按照这个顺序编译的话logo4、5、6对应的图片出错,总之就是放在后面的三张就出错。
 楼主| 桂海科技 发表于 2010-8-17 01:45:23 | 显示全部楼层
三张及三张以下不会出错,麻烦两位版主了,先谢谢了!
鬼鬼一哈 发表于 2010-9-14 17:53:48 | 显示全部楼层
bin文件大于1M了,记得要修改一个参数
fantasy89f 发表于 2010-9-14 18:56:33 | 显示全部楼层
ls,请问大于1M要改什么参数?我也面临这个问题
hongkun001 发表于 2010-9-27 11:29:25 | 显示全部楼层
请问楼主怎么解决的。我也是这个问题
vip2009 发表于 2010-9-28 16:00:14 | 显示全部楼层
7# fantasy89f


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
minranyuxin1 发表于 2010-11-4 16:07:24 | 显示全部楼层
请问楼主怎么解决的。我也是这个问题
XK为爱无限 发表于 2010-11-17 17:01:25 | 显示全部楼层
解决办法就是这个
~fish~ 发表于 2012-12-6 02:38:17 | 显示全部楼层
把U32 size = 0x200000,这么大就足够放下十张照片了
夏雨 发表于 2013-3-2 13:32:24 | 显示全部楼层
vip2009 发表于 2010-9-28 16:00
7# fantasy89f

谢谢,我也是这个问题。
夏雨 发表于 2013-3-2 13:42:14 | 显示全部楼层
~fish~ 发表于 2012-12-6 02:38
把U32 size = 0x200000,这么大就足够放下十张照片了

谢谢,我的问题一模一样,照你们说的改好了。
福尔摩斯 发表于 2013-4-9 22:46:27 | 显示全部楼层
。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-29 14:01 , Processed in 1.046875 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表