求一个实现方案

jason176374 2010-03-25 10:03:29
需求描述:
某种机械设备,要求某个动作只能进行规定的时间。假设要求A动作做0.5秒。

目前的实现:
1 取当前时间
2 做A动作(通过IOCTL调用硬件接口)
3 取当前时间

然后3的时间减去1的时间,如果大于规定时间,则退出。否则循环做1--3的操作。

问题:
由于第2步,调用硬件接口是阻塞的。因此,假设有时候硬件做A动作做了0.6秒,
那么整个做动作的时间就超过了规定的0.5秒。因此没有达到要求。

提问:
在WINCE应用层的程序里能否解决上面的问题?

谢谢
...全文
116 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdhhawk_nnc 2010-03-28
  • 打赏
  • 举报
回复
这个问题关键点在分析你的第二步阻塞到了什么程度,还允许其他线程运行吗?如何可以的话建立一个线程间同步应该就可以了
domworldjohn 2010-03-28
  • 打赏
  • 举报
回复
现在大部分时间延迟都是在调用硬件接口上了,就看你的硬件阻塞如何了
y2dg4lf 2010-03-26
  • 打赏
  • 举报
回复
事件同步是否可行
学飞的笨鸟 2010-03-26
  • 打赏
  • 举报
回复
新开一个线程来执行这些操作,并将线程的优先级提高试试
LaiQingXiong 2010-03-26
  • 打赏
  • 举报
回复
这么长的时间,应该无碍吧。呵呵。
jason176374 2010-03-26
  • 打赏
  • 举报
回复
我现在觉得这个东西光靠软件层是没有办法解决的。
因为硬件执行的时候是阻塞的,所以一旦阻塞时间比较长,我再怎么判断也没有用。

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧