日期:2014-05-17  浏览次数:20956 次

怎样实时读取外部硬件I/O的状态?

各位:

    现在给一个自动化设备写运动控制程序,需要实时检测一个外部物理按钮的状态(按钮状态通过硬件捕获),然后再通过硬件提供的指令读取按钮的状态即1或0;(硬件与PC间通过PCI通信)

现想实时检测这个按钮的状态,当有变化时,立刻执行另一指令(让设备停止运动),因此对时实性要求较高。

现要两种实现方法,不知能否达到要求,请各位指点?

1:在Timer事件里检测这个按钮的状态;

2:单独开一个线程,在线程中执行While(true)循环,然后在循环中检测按钮的状态。

在下能想到的只有以上两种方法,但感觉也不是太好,尤其是用Time事件那种,不知各位有更好的没有,求指点。

开发平台:XP
开发环境:VS2010
语言: C#
C#???实时性

------解决方案--------------------
Windows不是实时操作系统,所以如果你要求的精度小于50毫秒,Windows办不到,无论什么语言。
------解决方案--------------------
如果硬件(象gpio 卡..)支持中断 回调会更好