【发布时间】:2011-07-13 16:24:37
【问题描述】:
我在 FIFO 模式下使用带有 ftdi 芯片的硬件和 D2xx 驱动程序来完成我的工作。对于不同的设置,硬件以 19.5KHz 到 312.5KHz 的速率发送数据字节。所以我的应用程序软件(MFC C++)应该以不同的速度读取这些字节。我正在使用值为 10 ms 的 Settimer 和 Ontimer 方法。所以每 10 ms 我正在读取数据字节并在 OnTimer 函数中进行一些处理。我的问题是
1>使用 settimer 方法不同的系统给出不同的结果,即使这两个系统都是 XP SP3。一个系统正在读取所有字节而没有任何丢失,但在另一个系统中数据将丢失。那么这个计时器是依赖于操作系统还是系统硬件?
2> 据我了解,我可以为 settimer 设置的最小值是 10 毫秒,因此我可以每 10 毫秒读取一次数据。如果我不快速读取,驱动程序缓冲区中将会溢出,我无法控制。我可以使用任何计时器方法在微秒或纳秒内更快地阅读还是有其他方法? 请给我一些想法......提前谢谢
【问题讨论】: