Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.31;
Скачать: CL | DM;

Вниз

Задержка в микросекундах   Найти похожие ветки 

 
Genik   (2003-03-20 11:19) [0]

Добрый день!
Как зделать задержку в микросекундах?


 
stone ©   (2003-03-20 11:20) [1]

Timer
Sleep
есть другие варианты
Какая задержка то нужна?


 
stone ©   (2003-03-20 11:44) [2]

сорри не заметил что в микросекундах

А зачем такая задержка?


 
_Shade   (2003-03-20 11:58) [3]

>Genic в МИКРО никак.


 
Маргинал   (2003-03-20 12:02) [4]

1. Прочитать регистр данных порта принтера (примерно 0.6 мкс на один цикл чтения)
2. Написать драйвер, в нём KeStallExecutionProcessor() - от 1 до 50 мкс


 
Genik   (2003-03-20 12:05) [5]

Я управляю светодиодной сборкой через Lpt.


 
REA ©   (2003-03-20 12:10) [6]

Если пишешь драйвер, то уж задержку то наверно можно сделать.
Это уже не то API, что юзеру доступно. Если там есть функция получения времени, то можно сделать (опять же если никто это время не отнимет), а иначе придется засекать время выполнения и нет никакой гарантии что будет везде работать. Вобщем задержки лучше вообще не делать как таковые, а работать по прерываниям.


 
REA ©   (2003-03-20 12:11) [7]

Тьфу - я думал это вопрос про принтер...


 
Маргинал   (2003-03-20 12:11) [8]

Ну, тогда обычный таймер будет в тему.
Если индикация динамическая, то частота обновления должна быть от 20Гц и выше.


 
Genik   (2003-03-20 12:33) [9]

>Маргинал
У меня частота обновления 20Гц.
Хотелось бы выше.


 
pasha676   (2003-03-20 12:43) [10]

На асме через системный таймер. Хотя сомневаюсь, что получишь с точностью до именно микросекунды. Но до десяти микросекунд реально.

К слову сказать, обращение к порту и т.д. у тебя занимает такую кучу времени, что до микросекунды, имхо, опускаться не имеет смысла.


 
han_malign ©   (2003-03-20 12:48) [11]

WinAPI(для 98SE и выше):
CtreateWaitableTimer
SetWaitableTimer
........
WaitForSingleObject
- ну и Real Time приоритет не помешает


 
Маргинал   (2003-03-20 13:06) [12]

Экспресс-справка по задержкам:

[Win32API]
1. Sleep() - дискретность 1 мс, факт. задержка зависит от загрузки системы.
2. timeSetEvent() - callback, меньше 1мс, но безо всяких гарантий
3. Waitable timer - определяется быстродействием mutex-а, в целом равноценна Sleep()
4. WaitForSingleObject(GetCutrrentThread(),...) - зависит от значения кванта времени системы, типично 10 мс на Win2000Pro, WinXP Home edition, сильно зависит от загрузки системы.

[Hardware]
1. Чтение регистра данных порта принтера впустую - от 0.6 мкс (но не менее). Слабо зависит от производительности процессора.

[Kernel mode]
1. KeStallExecutionProcessor() - от 1 мкс, стабильна.


 
Genik   (2003-03-20 14:05) [13]

Светодиодная сборка имеет 80х80 светодиодов.
При одном проходе имеем 80мс.
Получаем частоту обновления 12,5.


 
Маргинал   (2003-03-20 14:18) [14]

Н-да...
Тогда нужно другое аппаратное решение.
Лучше микроконтроллер, например AT90S8515 + статическое ОЗУ 1..2 Кб.


 
Маргинал   (2003-03-20 14:21) [15]

В ОЗУ храним картинку, микроконтроллер её выводит в цикле на индикацию.
Заливать инфу можно будет через RS232.
Получится конфетка.


 
Genik   (2003-03-20 14:54) [16]

>Маргинал
Можно работать в статике, через регистры с защелками (типа ИР22),
но на такую сборку 800 штук нужно, а это огромное потребление.
Я думаю что старенький ПК обойдется дешевле чем разработка на
микроконтроллере, да и возможностей больше, тем более с решением
задержки проблема отпала бы.


 
Маргинал   (2003-03-20 15:04) [17]

Дело ваше, тогда проще под DOS...


 
REA ©   (2003-03-20 15:08) [18]

проще под QNX - тот же ДОС, но реального времени.



Страницы: 1 вся ветка

Текущий архив: 2003.03.31;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
14-100445
Дмитрий К.К.
2003-03-14 06:28
2003.03.31
Именинники 14 марта


8-100339
drake
2002-12-22 23:58
2003.03.31
Надо ли???


1-100224
cLe0
2003-03-14 14:09
2003.03.31
ValueListEditor и уникальность ключей


7-100472
Alpine
2003-02-04 18:21
2003.03.31
Как осуществить запись с телефонного разговора ?


14-100389
Зульфикар
2003-03-13 16:18
2003.03.31
Хочу начинать с нуля!