搜索
bottom↓
回复: 9

ILI9325设置的窗口X2-X1为奇数时,图像出现有规律的倾斜。

[复制链接]

出0入0汤圆

发表于 2011-4-17 23:00:56 | 显示全部楼层 |阅读模式
如题,程序中是根据图片的宽高来设置好窗口大小,然后依次发送图片数据。测试中发现只要图片的宽度是奇数的话,就会出现有规律的倾斜,看上去就像窗口宽度设置的与图片实际宽度不一致而出现的现象一样,但该问题应该可以排除。另外,图片宽度是偶数的话,显示正常。
不知道有谁也遇到过这样的情况没?可能会是什么原因啊?

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-4-18 08:51:08 | 显示全部楼层
丢一位数据

出0入0汤圆

 楼主| 发表于 2011-4-18 10:18:48 | 显示全部楼层
回复【1楼】sankunchai  三捆柴
丢一位数据
-----------------------------------------------------------------------

我用16bit总线传输的,所以不可能丢一位数据。另外数据是通过DMA整块传输的,也不会是每行少发一个像素数据的情况。

出0入0汤圆

 楼主| 发表于 2011-4-18 13:54:11 | 显示全部楼层
拍了张照片,显示的是239×320的图片,显示有问题。如果是240×320则正常。

(原文件名:未标题-1.jpg)

相关程序:
void lcd_set_window(u_int16 startx,u_int16 starty,u_int16 endx,u_int16 endy)
{
        //----- Set GRAM horizontal & vertical start address to startx,starty respectively -----
    lcd_set_cursor(startx,starty);
        //----- Set the horizontal start address of window -----
    lcd_write_reg(R50,startx);
        //----- Set the horizontal end address of window -----
    lcd_write_reg(R51,endx);
        //----- Set the vertical start address of window -----
    lcd_write_reg(R52,starty);
        //----- Set the vertical address of window -----
    lcd_write_reg(R53,endy);
}

void draw_bitmap_inram(u_int16 x1,u_int16 y1,u_int16 x2,u_int16 y2,u_int16 *pic)
{
        u_int32  i;
        u_int32  size;
        u_int16  *adr;
        u_int32         remainder;
        u_int32         wsize;

        //----- word size of bitmap image datas -----
        size = (((u_int32)(x2 - x1) + 1) * ((u_int32)(y2 - y1) + 1) * 2);

    lcd_write_reg(R03,0x10b0);
        lcd_set_window(x1,y1,x2,y2);
    lcd_set_cursor(x1,y1);
  
    lcd_gram_access_set();                                // Set R22 to Index register,prepare to write GRAM

        //----- DMA Transfer -----
        if((size / 2) > 0xff00)
        {
                DMA_Start(0,pic,(u_int16*)LCD_BASE_ADR,0xff00,0x09,FALSE);
                //----- the byte size that has been transfered  -----DMA一次性最多发0xffff个数据
                wsize = ((u_int32)0xff00 << 1);
                //----- the word size of remain to be transfered ----
                remainder = (size - wsize) / 2;
                //----- the address of bitmap image datas remain to be transfered  in FROM -----
                adr = (u_int16*)((u_int32)pic + (u_int32)wsize);
                //----- Transfer bitmap image datas from FROM to LCD GRAM,2byte/per transfer----
                DMA_Start(0,adr,(u_int16*)LCD_BASE_ADR,(DWORD)remainder,0x09,FALSE);
        }
        else
        {
                DMA_Start(0,pic,(u_int16*)LCD_BASE_ADR,size / 2,0x09,FALSE);
        }
//        backlight_brightness_set(BACK_LIGHT_CYCLE,BACK_LIGHT_DUTY);
}

出0入0汤圆

发表于 2011-5-6 09:44:00 | 显示全部楼层
回复【3楼】shandian 一凡
-----------------------------------------------------------------------

楼主好!我也是出现了图片变成倾斜的,弄了几天了也没有想明白。但是我的x2-x1确实是偶数啊,今晚下班后回去改成奇数试下。希望改成奇数就可以了,谢谢楼主这个主题,给了点希望。

出0入0汤圆

发表于 2011-5-8 17:54:18 | 显示全部楼层
后面我改成了奇数就正常显示了。。。。和楼主的相反,我的偶数出现倾斜,难道是屏幕生产的时候出现了问题?

出0入0汤圆

 楼主| 发表于 2011-5-8 18:20:52 | 显示全部楼层
回复【5楼】tornadomeet  
后面我改成了奇数就正常显示了。。。。和楼主的相反,我的偶数出现倾斜,难道是屏幕生产的时候出现了问题?
-----------------------------------------------------------------------
难道别人使用的时候就没遇到过这个问题?
还是就我们两个对相关的寄存器的设置理解出现了偏差?

出0入0汤圆

发表于 2011-5-8 18:37:44 | 显示全部楼层
图片是BMP格式保存的?貌似BMP不能保存奇数图像,会自动转成偶数,读图函数要处理的……

出0入0汤圆

 楼主| 发表于 2011-5-8 21:07:24 | 显示全部楼层
回复【7楼】powerg7  
图片是bmp格式保存的?貌似bmp不能保存奇数图像,会自动转成偶数,读图函数要处理的……
-----------------------------------------------------------------------
图片格式是BMP RGB565的,位图文档格式网上找的,没有说到位图宽度不能为奇数啊。
我在去查查资料看吧。这次的图片已经让设计UI的把所有图片都做成偶数宽度了。

出0入0汤圆

发表于 2011-5-9 01:23:22 | 显示全部楼层
字节对齐的问题。如果是BMP,位图的数据宽度要是4的倍数,不是的话要补齐的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 23:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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