旧题重述:通用微秒级延时,VC++如何实现?
主 题:冷僻话题:通用微秒级延时,VC++如何实现?
作 者:kylinux
所属论坛:Visual C++
问题点数:36
回复次数:14
人气指数:157
发表时间:2001-2-18 17:13:00
我正用VC++编写一个并口通讯程式,需用微秒级延时,
且不能依赖于CPU型号,我尝试了以下方法,效果均不
理想:
1。用_asm{nop}, 循环次数不好计算.
2。采用在程序运行前进行依次一秒的空循环,计算出空循环的次数,然后用这个次数除以1000000,就可以得出大约1us的空循环次数.误差大。
3。QueryPerformanceCount 和 QueryPerformanceFreqency
用于高精度延时可否?我目前尚未成功,450MHz和133MHz
延时50us误差为10us,无法接受。
据说通过对可编程定时/计数芯片8253编程
可以得到精度为大约840ns的定时程序。
望大侠多指教。