задержка в микросекундах
int tkt;
double PCFreq = 0.0;
__int64 CounterStart = 0;
void StartCounter()
{
LARGE_INTEGER li;
QueryPerformanceFrequency(&li);
PCFreq = double(li.QuadPart)/1000000.0;
QueryPerformanceCounter(&li);
CounterStart = li.QuadPart;
}
double GetCounter()
{
LARGE_INTEGER li;
QueryPerformanceCounter(&li);
return double(li.QuadPart-CounterStart)/PCFreq;
}
int zaderzhka() //функция организующая задержку
{
StartCounter();
do {
tkt = GetCounter();
}
while(tkt <= /" здесь выставляю задержку "/ );
return 0;
}
Всё работает, но задержка не стабильная, прыгает (+-5 мкс) .
Есть ли ещё какой-нибуль способ организовать задержку в микросекундах?
Если не сложно, то лучше с подробностями, я с С++ общаюсь только полторы недели)
boost. Там можно время измерять в наносекундах (в микро не нашел, но что мешает вписать тысячу наносекунд?). Пример использования вкратце. Смотреть лучший ответ.
Если не нужно опускаться до таких мелочей и использовать миллисекунды, то стандартный sleep к вашим распоряжениям. Если не хотите ставить либу (а вообще рекомендую попробовать, хорошая вещь, и во многих вопросах на нее ссылаются), то тогда вашим способом. Нашел еще один пример его использования.
Можно использовать всеумеющий
Если не нужно опускаться до таких мелочей и использовать миллисекунды, то стандартный sleep к вашим распоряжениям. Если не хотите ставить либу (а вообще рекомендую попробовать, хорошая вещь, и во многих вопросах на нее ссылаются), то тогда вашим способом. Нашел еще один пример его использования.