Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Короткая временная задержка (микросекунды) 
:(
    Опции темы
neoarey
Дата 12.10.2011, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 12.10.2011

Репутация: нет
Всего: нет



Здравствуйте, люди добрые!

Подскажите пожалуйста как реализовать временную задержку на 50 микросекунд. Буду очень признателен. Максимум что мне удалось добиться через API это 1 миллисекунда.

PM MAIL   Вверх
FallFan
Дата 14.10.2011, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 30.3.2008
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Наткнулся на статью, правда там не про vb6 и не про Windows.
 
Очень точная синхронизация

Но смысл её примерно таков: даже если получиться, то точность минимальна, а проверить затруднительно.
PM   Вверх
Akina
Дата 14.10.2011, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



neoarey, глянь http://www.codeproject.com/KB/dotnet/MicroTimer.aspx , может, сможешь переписАть под VB6...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ne1tr1n0
Дата 18.10.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 1.3.2009

Репутация: нет
Всего: 8



1. WaitableTimer можешь попробовать (CreateWaitableTimer, SetWaitableTimer, WaitForSingleObjectEx). В MSDN написано время принимает время в 100-наносекундных интервалах, следовательно теоретически теоретически может такую точность обеспечить.
2. NtDelayExecution. Однако это недокументированная функция, поэтому не факт что везде будет работать.
Код
'NTDLL
Private Declare Sub NtDelayExecution Lib "NTDLL" (ByVal Alertable As Boolean, ByRef Interval As Any)
 
Private Sub NtSleep(ByVal lMs As Long)
    Call NtDelayExecution(False, CCur(-(lMs)))
End Sub

3.  Ещё можно помутить с QueryPerfomanceCounter. 
4. RDTSC. Правда это уже ассемблер.

Однако, к сожалению на интервалах менее 1 мс, эти способы будут давать бОльшую или меньшую погрешность. В общем пробуйте, выбирайте, наиболее приемлемый на ваш взгляд способ.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.2200 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.