 |
inp和outp本身可以用于实时处理,因为这两个函数所用的指令周期非常短。但是你的采样周期是1ms,使用Sleep(1)就不太合适了,因为Sleep()精确不到1ms,大概只能精确55ms左右,在加上你的读写之间还有一些代码,所以会丢一下采样。在Windows中,只有QueryPerformanceCounter才能获得低于1ms的时间精度。但考虑你的采样间隔很小,建议你采用空循环延时。具体执行多少个循环,需要根据不同的机器的实际情况估算一下。参考:QA002554 "如何根据计算机的速度不同,确定延时循环次数"和QA004842 "timeGetTime函数延时不准"。
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, DDK与硬件设备, hardware, ddk, vtoolsd, driver studio, winrt。
|