各位大侠,一般的实时系统都利用定时中断来执行中断服务程序,使实时控制程序能够每隔一定的时间段执行对系统进行控制,那么如果用循环代替这个定时中断行吗?循环应该比定时中断执行的时间还要快一些,不知道在windows下面情况是如何。 
大侠们帮我指点一下了,究竟这两者有何区别?我这样做行吗?谢谢! 注:这里的实时控制系统是指只要定时向指定的寄存器中写入一定的数据就行!

解决方案 »

  1.   

    循环会一直占用CPU时间,其他任务怎么办
      

  2.   

    除了这个原因之外还有其他的区别吗?
    那要在windows下面进行实时控制怎么办?有比较好的方法吗?
      

  3.   

    有时候实时也不代表每时每刻要在工作。循环不仅会一直占用CPU,而且如果循环中出错,比如循环中某处在执行一定时间后可能死掉。那么,实时系统就不工作了。如果使用定时机制,系统执行一定时间后可以再次启动,可以避免上面循环可能出现的问题。所以比较好。
      

  4.   

    循环当然也是可以的
    但是做的不好的循环会阻塞整个程序或者系统
    从而不能正常工作比如windows下的循环就是
    while(GetMessage(...))
    {
    ...
    }\\当然也有其他的方式来处理消息
    这样通过消息队列来控制也是可以的
    这两者从底层来说没有太多的区别
      

  5.   

    那么如何在win2000下面调用定时中断呢?或者说如何实现让程序每隔一段时间(比如20ms)运行一次呢?谢谢