Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Организация задержек в микросекундах [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]

Учти, что время процессора получает не только твой процесс, но и другие. Поэтому, на такую точность я бы не надеялся.


Наверх

Титульная страница Поиск, карта сайта Написать письмо