aleksey_gregul (21.12.2010 19:48, просмотров: 187) ответил ReAl на А ОС-то какая? DOS? А то остальные как прервут работу, как вернут управление милисекунд так через 5-15, так стандартные милисекундный таймер и нормальное разрешение имеет. Кстати, если говорить о GetTickCount(), то
Если читать с LPT-порта, могут быть и задержки. Но если сделать что-то свое, PCI_йное, можно достаточно точно мерять. Я когда-то делал свою PCI-плату на рассыпухе. Использовал RDTSC таким образом:
function  rdtsc:int64;
var i64:dword absolute result;
begin
 asm
 push eax
 push edx
 db 0fh
 db 31h
 mov i64,eax
 mov i64+4,edx
 pop edx
 pop eax
 end;
end;
На время измерений делал
procedure cli;
begin
if not winnt then asm cli end
  else
  begin
  SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
  SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
  end;
end;
Здесь даже мышь не шелохнется. Процессор занят только моей задачей.
procedure sti;
begin
if not winnt then asm sti end
  else
  begin
  SetPriorityClass(GetCurrentProcess, NORMAL_PRIORITY_CLASS);
  SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_NORMAL);
  end;
end;
Получал очень достойные результаты. Это под дельфи5