Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.31;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-100243
NetKnight
2003-03-18 11:56
2003.03.31
Директива {$IFDEF} ?


14-100402
GennadyR
2003-03-12 21:09
2003.03.31
Счетчик времени в Internet


1-100267
groza
2003-03-18 23:06
2003.03.31
QuickRepoter


14-100388
BERK
2003-03-12 20:24
2003.03.31
Есть RX (или аналогичные по классу компоненты) под CBuilder6?


1-100215
drAcul
2003-03-20 08:53
2003.03.31
Работа с файлом!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский