免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2171 | 回复: 0
打印 上一主题 下一主题

移植UCGUI3.98到44B0 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:44 |只看该作者 |倒序浏览

有新的UCGUI了,3.98的。支持JPEG和GIF。于是心动了,想试一下。GIF很好做。我先没有用OS 平台ADS1.2

1。GIF的显示。

先写一段显示GIF的代码如下:网上参考的,其实用不了那么多。

void ShowGif(const void * Pgif, U32 NumBytes , int x0, int y0)
{
    static U16 i = 0;
    GUI_GIF_INFO InfoGif1;
    GUI_GIF_IMAGE_INFO InfoGif2;
 
    GUI_GIF_GetInfo(Pgif, NumBytes, &InfoGif1);
    if(i < InfoGif1.NumImages)
    {
        GUI_GIF_GetImageInfo(Pgif, NumBytes, &InfoGif2, i );
        //if(!GUI_GIF_DrawEx(Pgif, NumBytes, x0 + InfoGif2.xPos, y0 + InfoGif2.yPos, i++))
        if(!GUI_GIF_DrawEx(Pgif, NumBytes, x0, y0, i++))
        {
            //SysDelay(InfoGif2.Delay * 2);
   GUI_Delay(InfoGif2.Delay * 5);
        }
    }
    else
    {
        i = 0;
    }   
}

这里把GUI_Delay();里再调用你的延时函数。是要是没得OS提供时间片的维护。

while(1);
ShowGif(acGifTest, 3072, 0, 0);

当然,acGifTest是我用bin2C转换出来的C文件.

2。JPEG的显示。

因为3。98源码中,我没找到JPEG这个文件夹。于是把3。90中的JPEG文件夹搞入工程了。

(3。98主要是加了GIF显示。)

主要的问题是编译遇到以下错误:

Undefined symbol main (referred from kernel.o)

原因是JPEG文件包中的一个C文件用到了exit。而这里是不支持的。用网上的一句话说:好多嵌入式系统,对C或C++运行时系统,进行了精简或修改,

我把这个函数内部实现注释了。因为它的反回是一个static void的类型.

METHODDEF(void)
error_exit (j_common_ptr cinfo)

{

    return ;

}

如下调用即可:

GUI_JPEG_Draw(acJpegTest, sizeof(acJpegTest), 0, 0);

 

3.补充,LCDWin.c是VC上位机的模拟LCD。

删了,加我们的LCD44B0.c

#define LCD_CONTROLLER (0)     ///用我们自己的屏,240*160   不然它用其它的驱动,显示就不会在我们的LCD上了。

其它我的设置:

 #define GUI_OS                    (0)  /* Compile with multitasking support */
#define GUI_SUPPORT_TOUCH         (0)  /* Support a touch screen (req. win-manager) */
#define GUI_SUPPORT_MOUSE         (0)  /* Support a mouse */
#define GUI_SUPPORT_UNICODE       (1)  /* Support mixed ASCII/UNICODE strings */

 在编译过程中,有什么错再看提示改,一般就是点宏定义啊,数据类型定义什么的。你都能搞定的。

有不行的可以问我。QQ573618118

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP