WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Высокоточная задержка на мкс.

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Высокоточная задержка на мкс.
Alexber опубликован 07-02-2002 14:20 MSK   Click Here to See the Profile for Alexber   Click Here to Email Alexber  
Как сделать высокоточную задержку на мкс с самым высоким приоритетом, чтобы предотватить прерывания вызванные другими процессами....
есть сама функция

void CKPADlg::Sleep_mks(int delay)
{
signed int LoPart, HiPart;
signed __int64 x, x1;
double xyz = 0;

__asm
{
RDTSC
mov LoPart,eax
mov HiPart,edx
}
x = HiPart*4294967296 + LoPart;

while (xyz < delay)
{

__asm
{
RDTSC
mov LoPart,eax
mov HiPart,edx
}
x1 = HiPart*4294967296 + LoPart;
xyz=(x1-x)*1000000/f; // f - частота проца
}
}

x опубликован 08-02-2002 03:33 MSK     Click Here to See the Profile for x  Click Here to Email x     
в 2к & XP - никак
в 9x =приоритета вполне достаточно
frostbitten опубликован 09-02-2002 05:26 MSK     Click Here to See the Profile for frostbitten  Click Here to Email frostbitten     
Если нужны точные задержки, то надо девайсы специальные ставить...

А если +- ~600нс не играют роли, то ничего проще, чем QueryPerformanceCounter, и иже с ним, нет. А так как ты это сделал в 100% будет бавать непредсказуемо бОльшую задержку.

P.S. А че такое "RDTSC"?

x опубликован 09-02-2002 05:38 MSK     Click Here to See the Profile for x  Click Here to Email x     
frostbitten =ты ламер

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.