打印

液晶程序部分执行时间过长导致程序实时性不好怎么办?

[复制链接]
2135|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wxjia2004|  楼主 | 2007-2-7 14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在使用T6963C驱动的一块240128的液晶。程序一屏刷新循环的运行时间达到了117ms。而我的系统只允许程序执行时间在5MS左右才能保证准确性。后发觉程序的执行时间大部分耗在等待液晶屏状态准备好了(几乎每发一个数据都要判断这个状态字)。(使用的while循环等待),我想了几个方案改善,可现在都不是很好实现,希望大家提点意见: 

1》使用实时性好的操作系统比如:ucos-ii。但以前没做过,现在一下子肯定做不好,时间也不允许。 

2》我想把程序等待改成用中断定时去等,但是C语言里面没有办法实现跨函数跳转。goto不行。 而且要是每个汉字都置一个状态位那也不知道要多少个啊。不这样的话函数每次进来又不知道该发哪个汉字。

大家还有什么好法子没有哦?

相关帖子

沙发
zgl7903| | 2007-2-7 21:11 | 只看该作者

实时性要求高的任务可以写在中断里

可以把刷新屏的部分使用状态机写成可重入模式,去除等待部分.

使用特权

评论回复
板凳
fsaok| | 2007-2-7 21:53 | 只看该作者

采用非阻塞型函数

bit lcm_disp()
{
  if ()
  {
     ....
     return 1;
  }
  else
       return 0;  
}

循环中,看一下lcm是否ok,OK就做处理,否则,就先做一下别的工作。

使用特权

评论回复
地板
wxjia2004|  楼主 | 2007-2-8 14:55 | 只看该作者

不懂

非阻塞型函数?状态机?不懂啊,能不能说详细点啊?

把把程序的实时性高的部分写到中断里面了,但是液晶有点花屏,程序也不好使了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

28

帖子

2

粉丝