Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Малые временные задержки (нс и мкс)


Автор: Fishhook 21.4.2006, 00:23
Кто-нибудь, подскажите, как программно организовать временную задержку на нужное количество наносекунд. 

Автор: Void 21.4.2006, 00:29
Без указания ОС вопрос бессмысленен. AFAIK, на такие задержки способны только драйверы режима ядра и RTOS (и то не все, наверное). 

Автор: cardinal 21.4.2006, 01:30
Так что давай делай непрограммно (см. электроника). smile  

Автор: Step 21.4.2006, 02:32
минимальное что возможно это на основе тактовых импульсов

QueryPerformanceFrequency
QueryPerformanceCounter

 

Автор: Void 21.4.2006, 17:58
Step, замерить-то время можно очень точно. Но винда никогда не даст гарантии, что твой поток получит процессорное время через заданное число микросекунд, даже о миллисекундах не всегда можно говорить. 

Автор: cardinal 21.4.2006, 18:02
Fishhook, напиши зачем тебе это, может что другое подскажут... 

Автор: Fishhook 22.4.2006, 01:23
Пишу диплом на тему сопряжения с компом внешнего устройства через LPT порт.
На моей плате есть довольно тормозная микросхема - оптопара-аналоговый ключ на основе полевого
транзистора (обнуляет заряд на конденсаторе). Время ее установки и сброса - 25 мкс. Это при том, что все остальные микрухи (операционники, компараторы, демультиплексор, регистры и т. д.) не дают задержку прохождения больше 100 нс. Вот мне и нужно - провести необходимые операции, подать на диод оптопары нужное напряжение и ждать, пока полевик соизволит открыться.  
Операционка ДОС или W98 (драйвер NTport мне под XP обуздать не удалось :-(). 

Автор: cardinal 22.4.2006, 14:05
Цитата(Fishhook @  21.4.2006,  23:23 Найти цитируемый пост)
и ждать, пока полевик соизволит открыться.  

И сколько это наносекунд еще раз? 

Автор: Fishhook 22.4.2006, 18:14
25000 нс или 25 мкс 

Автор: cardinal 22.4.2006, 20:21
Попробуй это
http://www.sources.ru/NonCGI/Forum2/HTML/003210.html 

Автор: Fishhook 23.4.2006, 03:08
Спасибо, попробую 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)