![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Организация задержек в микросекундах [D5]
Alfred © (2002-11-29 11:09:00)Поскажите, пожалуйста!
Как организовать задержки в программе в микросекундах.
В милисекундах понятно как.
Zwerg (2002-11-29 14:31:00) [1]1) Функциями QueryPerformanceFrequency и
QueryPerformanceCounter — разрешение примерно 0.8 мкс
2) Командой RDTSC — разрешение 1/Тактовая частота процессора
function TactCounter:Int64;
asm
db $0F,$31
end;
Т.е. вертится какой-нибудь цикл и периодически измеряет время,
после достижения нужной задержки — выход. Но поскольку Windows —
не есть система реального времени точность до мкс может не соблюдаться
Digitman (2002-11-29 13:07:00) [2]Только - синхронная задержка. Вставкой цикла с NOP-инструкциями. Число итераций цикла подбирается экпериментально и усредняется до примерно приемлемого значения.
Alfred (2002-11-29 12:58:00) [3]Проблема не в точности, а в размерности
Слесарь Матерящийся (2002-11-29 11:32:00) [4]KeStallExecutionProcessor() -- задержки до 50 мкс. Но через драйвер.
Виктор Щербаков (2002-11-29 11:19:00) [5]Учти, что время процессора получает не только твой процесс, но и другие. Поэтому, на такую точность я бы не надеялся.