代码之家  ›  专栏  ›  技术社区  ›  bdonlan

<100uS精确睡眠在Windows CE上

  •  1
  • bdonlan  · 技术社区  · 15 年前

    在Windows CE上是否可以精确到100微秒以下的睡眠时间?抖动越小越好-理想情况下,我们想要一位数的微秒响应时间。

    我们真正想要的是一个5毫秒的定时器,抖动非常低——尽管Windows CE WaitFor[Single | Multiple]对象和Sleep API以毫秒为单位工作,但我们无法校正代码运行所需的亚毫秒时间,因此周期将逐渐漂移。

    如果这是不可能的,这些信息也将非常有用。

    4 回复  |  直到 15 年前
        1
  •  2
  •   Mark Rushakoff    15 年前

    This MSDN article 有一些代码可以在WinCE中设置500us定时器中断,所以这是绝对可能的。

    如果您没有被锁定在WinCE版本中,您可能需要查看 Tenasys

    我也听说了一些好消息 QNX ,但我也没用过他们的产品。然而,我不相信它在任何方面与Windows兼容。

        2
  •  1
  •   Spencer Ruport    15 年前

    这是不可能的。甚至在台式机上都不可能。典型的操作系统根本不以这种方式工作。

    如果你需要的是精确地每4毫秒发射一次的东西,或者你运气不好的任何东西。如果你真正需要的是每秒精确发射250次,那可能更可行。如果你需要后者,我可以建议一种方法。

        3
  •  1
  •   BitBank    15 年前

    L.B。

        4
  •  0
  •   Tim Williscroft    15 年前

    要纠正抖动,您需要访问高分辨率计时器。

    最简单的方法是使用具有实时性的Linux,然后通过WINE进入该库。 你需要一个周期性的线程。

    Take a look at this report from NIST.