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

[复制链接]
 楼主| 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

主题

29

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

8

主题

29

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部