/********************************************************************
Created: 2006/09/02
FileName: t.c
Author: Liu Qi
Purpose: 测试微秒级延时
*********************************************************************/
#include <windows.h>
#include <time.h>
#include <stdio.h>
ULONG GetTimeDis(SYSTEMTIME first, SYSTEMTIME second) //
{
return abs((first.wHour * 3600 * 1000 + first.wMinute * 60 * 1000 + first.wSecond * 1000 + first.wMilliseconds)
- (second.wHour * 3600 * 1000 + second.wMinute * 60 * 1000 + second.wSecond * 1000 + second.wMilliseconds));
}
void us_Delay(ULONG ulMicroSeconds)
{
LARGE_INTEGER timeStop;
LARGE_INTEGER timeStart;
LARGE_INTEGER Freq;
LONGLONG ulTimeToWait;
if (!QueryPerformanceFrequency( &Freq ))
return;
QueryPerformanceCounter ( &timeStart );
ulTimeToWait = Freq.QuadPart * ulMicroSeconds / 1000 / 1000;
timeStop = timeStart;
while((timeStop.QuadPart - timeStart.QuadPart) < ulTimeToWait )
{
QueryPerformanceCounter( &timeStop );
}
}
int main(void)
{
SYSTEMTIME timeStart, timeEnd;
GetLocalTime(&timeStart);
us_Delay(1000 * 1000 * 5); //5 second
GetLocalTime(&timeEnd);
printf("Delay Times = %d MS\n", GetTimeDis(timeStart, timeEnd));
// getchar();
return 0;
}
VC 微秒级延时函数
最新推荐文章于 2024-07-23 11:58:46 发布