首页 > > > ucgui液晶显示深度优化篇.doc

ucgui液晶显示深度优化篇.doc

ucgui液晶显示深度优化篇.doc

上传者: wzt19910506 2012-08-02 评分5 评论0 下载105 收藏10 阅读量663 暂无简介 简介 举报

简介:本文档为《ucgui液晶显示深度优化篇doc》,可适用于电信技术领域,主题内容包含UCGUI液晶显示深度优化篇Author:wzt年月日::前一段进行了ucgui的移植,但是移植后续还是存在很多问题,比如液晶刷新速率慢,横竖屏切换符等。

UCGUI 液晶显示深度优化篇 Author wzt2012 7 21 10:55:12 前一段进行了 ucgui 的移植 , 但是移植后续还是存在很多问题 , 比如液晶刷新 速率慢 , 横竖屏切换不支持等,所以针对这些问题进行了一次彻底的优化,现在 刷新能够达到 20 帧的速度对于 50mhz io 口来说已经相当可以了。下面就进 行一次彻底的剖析,看究竟是那些问题占用了宝贵的百万分之一秒: 一、速度优化篇: 1. 我用的是 stm32 的处理器, stm32 公司为了让使用者加快项目开发 速度和便于日后对整个软件部分的维护管理编写了一套标准库。这个 库用起来确实很方便也另学习简化了很多,但是它也有缺点所在:就 是效率问题。我之前用的液晶屏驱动就是基于库函数编写的,所以第 一步就是液晶驱动全部换为直接对寄存器操作,经实践确实刷新率成 好几倍的增长。这个代码比较长,这里就不贴出来的,这里仅仅指点 下思路,具体请看源代码。 代码下载地址: http: //bbs.21ic.com/icview-357489-1-1.html 2. 深入液晶驱动内部:液晶屏刷新可不是像我们眼睛看到的一样瞬间整 个屏幕同时更新。实际上一个一个像素更新的:也就是说我的屏幕分 辨率是 320*240 就要更新 320*240=76800 个点。每一个点更新时 都要调用一个写数据函数。所以接下来要做的就是提高调用这个函数 的速度。有两种解决办法:使用宏定义函数或者内敛函数。我使用的 是内敛函数:如下定义: __inlinevoidLCD_WR_DATA(u16data) { LCD_RS_SET; LCD_CS_CLR; DATAOUT(data); LCD_WR_CLR; LCD_WR_SET; LCD_CS_SET; } 可以看到和普通函数区别就在于前面增加了 __inline 关键字。它有什么 作用?为什么可以提高速度?下面讲解一下它是如何起作用的:假如现 在我们定义了两个函数 A ,函数 B ,函数 A 调用函数 B :正常情况下如

第1页

该用户的其他资料

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 8
所需积分:2 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!