|
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
|
|
Задержка в микроседундах14.01.2009, 19:55. Показов 76307. Ответов 20
Метки нет (Все метки)
0
|
|
| 14.01.2009, 19:55 | |
|
Ответы с готовыми решениями:
20
While и задержка Задержка :-) Задержка |
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
|
||||||
| 14.01.2009, 20:33 | ||||||
1
|
||||||
|
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
|
|
| 14.01.2009, 20:40 [ТС] | |
|
0
|
|
|
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
|
||||||
| 14.01.2009, 20:42 | ||||||
|
При программировании в Windows помогает API-функция Sleep.
Заголовочный файл winbase.h Синтаксис void Sleep(DWORD dwMilliseconds); DWORD SleepEx(IN DWORD dwMilliseconds, IN BOOL bAlertable); Однако под DOS и консольных приложений я таких функций не знаю. Может помочь следующее (я проверял на консоле в Borland С++ Builder 6).
Программа запрашивает системное время до входа в цикл и при каждом повторении цикла. Как только эти значения станут отличаться на 3 сотых секунды (30 милисекунд), произойдет выход из цикла.
0
|
||||||
|
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
|
|
| 14.01.2009, 20:50 [ТС] | |
|
Ну дык это тоже МИЛЛИсекунды.
0
|
|
|
Флудер
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
|
|
| 14.01.2009, 21:18 | |
|
для нано и микро секундных задержек используется либо мультимедиа таймер из winmm, либо ассемблерная инструкция rdtsc (количество тиков).
если нужно позже прикреплю модули для калибровки и задержек этими способами
0
|
|
|
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
|
|
| 14.01.2009, 21:28 | |
|
При программировании в Windows столь короткие задаржки ты никогда не сделаешь. Там даже таймеры рекомендуют для большой точности брать с интервалом в 2 секунды (не меньше), хотя документально они обеспечивают милисекундную точность.
Если работаешь напрямую с процессором (на ассемблере), старайся считать количество тактов, затраченное навыполнение какой-то конкретной операции. Иного пути я не знаю.
0
|
|
|
0 / 0 / 0
Регистрация: 28.12.2008
Сообщений: 5
|
|
| 14.01.2009, 21:31 [ТС] | |
|
Понял,спасибо,буду думать как обойтись без задержек.
0
|
|
|
Флудер
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
|
|
| 14.01.2009, 21:48 | |
|
нормально все реализуется нечего глупости говорить.
например у Щупака в книге все отлично описано
0
|
|
|
Флудер
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
|
|
| 15.01.2009, 11:38 | |
|
см. вложение
2
|
|
|
683 / 232 / 16
Регистрация: 15.10.2007
Сообщений: 1,246
|
|
| 16.01.2009, 18:05 | |
|
Можно использовать заднржку милисекунду,микро даже не даст результат
0
|
|
|
Флудер
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
|
|
| 16.01.2009, 19:05 | |
|
2Mecid
никаких проблем во вложений модули позволяют делать микро задержки
0
|
|
|
32 / 32 / 4
Регистрация: 29.12.2008
Сообщений: 75
|
|
| 16.01.2009, 20:11 | |
|
Очень не хотелось бы, чтобы мой вопрос выглядел как провокационный, но все же.
Уважаемый Ensase, откуда вы знаете, что получаются именно задаержки в 30 микросекунд. Вы их точно измеряли, или доверились Щупаку? Я уже говорил выше, что подсчет количества тактов микропроцессора - самый оптимальный способ организовать столь малые задержки. Вы же, в подтверждение этих слов представили примеры кода. За что вам огромное спасибо. Однако обеспечится ли реально для многопроцессной системы Windows задержка именно в 30 микросекунд. Если вы уверены в этом, расскажите, пожалуйста, каким образом вам удалось обнаружить столь короткую задержку (если, конечно, это не секрет)? P.S. Я уже рассказывал о таймерах, которые считают с точностью до милисекунд, но на практике минимальный интервал, который имеет смысл задавать для них - это полсекунды, а самая лучшая синхронизация с реальным временем достигается, когда их интервал равен 1 - 2 секундам (в зависимости от количества одновременно выполняющихся в Windows процессов).
1
|
|
|
Флудер
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
|
|
| 16.01.2009, 21:32 | |
|
при программировании спектрометра работал с ацп и шаговым двигателем практически в реальном времени (с высоким приоритетом) задержки после пересчета составляют даже менее 30 микро.
хотя, разумеется ввиду того что windows os не реального времени приходилось следить за загрузкой цп пользовался схемой с использованием rdtsc
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2009
Сообщений: 6
|
||
| 23.01.2009, 18:16 | ||
|
посмотри https://www.cyberforum.ru/delp... l?posted=1
будем бороться вместе. Добавлено через 18 часов 34 минуты 17 секунд Нельзя ли поподробнее - 1. какой наикоротейшей задержки удалось добиться 2. тесты может выложишь в ехе? 3. и можешь ли сделать таймеры в осх компоненты?
0
|
||
|
Hansik
|
|
| 04.02.2009, 19:54 | |
|
Тоже столснулся с рпоблемой таймера, правда на VB... Можно узнать хотя бы результаты теста?
|
|
|
Флудер
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
|
|
| 05.02.2009, 06:25 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 22.01.2009
Сообщений: 6
|
|||||||
| 17.02.2009, 12:52 | |||||||
|
вот тут походая тема разбирается, правда на дельфи.
[ Системный таймер и частота процессора"] [/URL] Добавлено через 30 минут 34 секунды ... правда сам я оттуда мало что понял. .... нужно, похоже, осваивать альтернативные языки програмирования. хотя алгаритм понятен, но вот потоки.... ![]() Добавлено через 23 часа 5 минут 50 секунд может, кто в дельфе сечёт сможет скомпилировать осх-файл под дельфи из [ Системный таймер и частота процессора"] ... по аналогии с vb вроде когда класс готов - всего-то нужно нажать <Создать ActiveX> и скопировать туда класс, да присоединить иконку. вроде как всё. Добавлено через 13 минут 36 секунд вот читата оттуда: последний рывок.. функции разобраны, отлажены. сделан вариант через поток, все оформено в компоненту.. дело за малым: нужно сделать редактор потоков через TCollection, чтобы каждому потоку задавались свои параметры. никогда с таким не работала, не совсем представляю как это выглядит (т.е как выглядить знаю, как это туда запихнуть не совсем понятно))
0
|
|||||||
|
0 / 0 / 0
Регистрация: 20.06.2015
Сообщений: 2
|
|
| 30.03.2013, 17:10 | |
|
В C++ Builder'е задержку можно реализовать несколькими способами:
1. функция sleep() - приостанавливает программу на целое число секунд (подключаемая библиотека dos.h); 2. функция delay() - приостанавливает программу на целое число милисекунд. Работает только в Borland C++ 3.1 (подключаемая библиотека dos.h); 3. функция Sleep() - приостанавливает программу на целое число милисекунд (подключается заголовочным файлом windows.h). Работает как в консольных приложениях, так и в приложениях с формами. 4. и самый интересный вариант, самописная не документированная конструкция: int time=GetTickCount(); while((GetTickCount()-time)<1000) // 1000 - число милисекунд задержки { } Источник: Недоблог быдокодера
0
|
|
|
|
||||||
| 30.03.2013, 17:44 | ||||||
|
А что никто не упоминает о chrono?
Не по теме: не увидел что тема давняя, тогда наверное chrono еще не было
1
|
||||||
| 30.03.2013, 17:44 | |
|
Помогаю со студенческими работами здесь
20
Задержка Задержка Задержка Задержка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|