Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024

Как на с++ под досом сделать задержку в 10мс?

08.06.2017, 07:48. Показов 2495. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, можно ли как то настроить такую задержку, почему то пока меньше 1й секунды не получается через стандартную функцию sleep()
C++
1
2
3
4
5
6
7
8
9
10
Следующая программа ждет 1 секунду между сообщениями:
#include <stdio.h>
#include <dos.h>
int main(void)
{
printf("hello");
sleep (1);
printf (" there");
return 0;
}
Я через сом порт отравляю данные пачками по протоколу MIL-STD-1553B на внешнее устройство и мне нужна задержка в 10-15 мс между пачками данных, как это можно реализовать, не подскажете?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2017, 07:48
Ответы с готовыми решениями:

FoxPro под досом
Приветствую. Ребята, требуется помощь. В общем пишу программу под досом (FoxPro/LAN 2.0). суть следующая: есть приход и расход. есть...

Как сделать задержку C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; using namespace std; double function(double x, double y) { ...

Как сделать задержку ?
к примеру вот программа. Что надо дописать и куда для задержки изображения ? /* Дане чотиризначне число. Визначити; а) входять чи...

12
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
08.06.2017, 09:22
C++
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
//для sleep
#include <unistd.h> 
#include <dos.h>
int main(void)
{
printf("hello");
sleep (0.01);
printf (" there");
return 0;
}
1
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
08.06.2017, 09:32  [ТС]
Вот нашел функцию delay() вместо sleep()
получился вот такой код
C++
1
2
3
4
5
6
7
8
9
10
...
int port=0x378
while(1)
{
delay(100);
outportb(port+2,0xF8)
delay(100)
uotportb(port+2,0xF0)
}
...
считываю на осциллограф сигнал с 17й ноги lpt порта выбор принтера. так и получилось 100 мс, попробую уменьшить до 10.

Добавлено через 6 минут
Цитата Сообщение от marat_miaki Посмотреть сообщение
#include <unistd.h>
в стандартном наборе не нашел борлад с3.0 такой заголовочный файл, его надо скачать наверно откуда-то?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.06.2017, 09:38
Цитата Сообщение от седьмой Посмотреть сообщение
в стандартном наборе не нашел борлад с3.0 такой заголовочный файл
Для чего он тебе?
0
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
08.06.2017, 09:46  [ТС]
Цитата Сообщение от marat_miaki Посмотреть сообщение
#include <unistd.h>
вместо этого файла поставил io.h заработало и период получился не 10 мс, а 10 мкс. Это как понимать?

Добавлено через 1 минуту
Цитата Сообщение от nmcf Посмотреть сообщение
Для чего он тебе?
в каком смысле для чего? Я же написал в теме что нужна задержка между пачками данных отправляемых в сом порт в 10 мс, вот для этого. Или вы про что то другое спросили, я не понял.
Или вы спрашиваете зачем мне борланд 3.0 - у меня драйвер интерфейсной платы под досом, а в борланде я этот файл компилирую, а что то не так?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.06.2017, 09:59
delay() же в dos.h.

Добавлено через 1 минуту
Цитата Сообщение от седьмой Посмотреть сообщение
у меня драйвер интерфейсной платы под досом
Ты же про LPT-порт говорил.
0
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
08.06.2017, 10:13  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Ты же про LPT-порт говорил.
lpt я тупо использую для проверки задержки на осциллографе, вряд ли я бы визуально заметил через какое время после hello вышло сообщение there
delay() же в dos.h. так у меня дос и есть...
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.06.2017, 10:17
Цитата Сообщение от седьмой Посмотреть сообщение
так у меня дос и есть
Я понял. А unistd зачем? Что ты оттуда используешь?

Драйвер Windows снова не завезли?
0
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
08.06.2017, 10:31  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Я понял. А unistd зачем? Что ты оттуда используешь?
мне marat_miaki посоветовал использовать unistd.h я думаю или что бы меня запутать или намек на какой то код, сам вот сейчас разбираюсь, тут же негласное правило на форуме, полный код никогда не давать, что бы человек сам разобрался что к чему, вот сижу разбираюсь и такое ощущение что это заголовочный файл из линукса а не из доса. Пока итог получился такой, при использовании разного кода
C++
1
2
3
sleep(1) - задержка 1 сек
sleep(0.1), sleep(0.01) - задержка 14 мкс
delay(100) - 100 мс
Добавлено через 2 минуты
Цитата Сообщение от nmcf Посмотреть сообщение
Драйвер Windows снова не завезли?
нет почему то решили делать под досом, ностальгия наверно... это не ко мне , это без меня решили...
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.06.2017, 10:34
Впервые вижу, что в sleep() дробные числа ставят. delay(10) должно быть.
1
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
08.06.2017, 14:43  [ТС]
Цитата Сообщение от nmcf Посмотреть сообщение
Впервые вижу, что в sleep() дробные числа ставят
это
marat_miaki предложил, думаю он для линукса предложил, ну да не суть...
Цитата Сообщение от nmcf Посмотреть сообщение
delay(10) должно быть.
да вот с таким значением задержка получилась в 10мс, пока так оставлю, спасибо.

Добавлено через 3 часа 41 минуту
Странно если в простом цикле эта функция delay(10) отработала как надо, то в полной рабочей программе компилятор БорландС3.0 почему то перестал ее находить, как это так может быть??????? пишет
C++
1
Call of nonfunction
в полной программе больше заголовочных файлов, ну и сама программа побольше, как это может влиять на работу функции delay()?
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
08.06.2017, 15:30
Цитата Сообщение от седьмой Посмотреть сообщение
Call of nonfunction
Вам говорят, что delay - это не функция. Видимо где-то есть объявление/определение delay (не как фукции).
1
45 / 44 / 1
Регистрация: 11.07.2012
Сообщений: 1,024
09.06.2017, 07:07  [ТС]
Цитата Сообщение от gray_fox Посмотреть сообщение
Вам говорят, что delay - это не функция. Видимо где-то есть объявление/определение delay (не как фукции).
Вы оказались правы, оказалось она была объявлена как переменная, спасибо вам большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2017, 07:07
Помогаю со студенческими работами здесь

Как сделать задержку 1 ms ?
Частота cpu= 41 780 000 Hz. В сети нашел следующий код: long volatile a=def_msec*ms; while(a!=0) { a--; }

Как в C# сделать задержку
Короче надо чтоб через какое то время сработал код. transform.localScale += new Vector3 (0.0f, 0.5f, 0.0f); Наверно тупой вопрос...

Как сделать задержку?
package sevak_avet; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.JOptionPane; public...

Как сделать задержку?
Почему после запуска программа сразу же закрывается? #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;string&gt; ...

Как сделать задержку ?
При наведении на элемент , появляется окно, но как только я отвожу курсор , окно пропадает , как сделать задержку ?Пока курсор находиться в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru