您的位置:首页 > 其它

VC 微秒级延时函数

2013-10-08 14:34 756 查看
/********************************************************************
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: