Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Каким образом сделать задержку

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Roman_2002



Зарегистрирован: 21.05.2002
Сообщения: 56
Откуда: Львов

СообщениеДобавлено: Вт Июн 04 2002 11:18    Заголовок сообщения: Каким образом сделать задержку Ответить с цитатой

Проблема в следующем:
когда я начала писать драйвер, то возникла необходимость сделать небольшую задержку (1 мкс хватило бы) На старых машинах по ДОСом это просто делалось: for(int i=0; i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Adil
Гость





СообщениеДобавлено: Вт Июн 04 2002 13:50    Заголовок сообщения: Re: Каким образом сделать задержку Ответить с цитатой

Попробуй чтение из порта 0xffff ( inp(0xffff)Wink - где-то 1-1.5 мкс и получится. Хотя на разных машинах по-разному, но я думаю не значительно.

Удачи.
Вернуться к началу
Roman_2002



Зарегистрирован: 21.05.2002
Сообщения: 56
Откуда: Львов

СообщениеДобавлено: Вт Июн 04 2002 14:11    Заголовок сообщения: Re: Каким образом сделать задержку Ответить с цитатой

незначительно, то насколько?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Roman_2002



Зарегистрирован: 21.05.2002
Сообщения: 56
Откуда: Львов

СообщениеДобавлено: Вт Июн 04 2002 14:30    Заголовок сообщения: Re: Каким образом сделать задержку Ответить с цитатой

А что собой этот порт представляет?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Roman_2002



Зарегистрирован: 21.05.2002
Сообщения: 56
Откуда: Львов

СообщениеДобавлено: Вт Июн 04 2002 16:39    Заголовок сообщения: Re: Каким образом сделать задержку Ответить с цитатой

Самое интрересное что получается что задержка при чтении при это составляет не 1-1,5 мкс, а 10-12 мкс.
Неужели такие тормаза дает Windriver?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Adil
Гость





СообщениеДобавлено: Вт Июн 04 2002 16:48    Заголовок сообщения: Re: Каким образом сделать задержку Ответить с цитатой

Что-то многовато. А что у тебя за машина?
Вернуться к началу
Roman_2002



Зарегистрирован: 21.05.2002
Сообщения: 56
Откуда: Львов

СообщениеДобавлено: Ср Июн 05 2002 09:26    Заголовок сообщения: Re: Каким образом сделать задержку Ответить с цитатой

Athlon 1800 XP на Tyan Tiger MP c 512 DDR

Интересно то что при той же раскладке
(програмной) w2000 pro + C++Builder + Jungo Windriver на Duron 650/EPox 8Kha/256SDR и P III 866/Soltek SL65ME+ картина та же самая
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Adil
Гость





СообщениеДобавлено: Ср Июн 05 2002 11:32    Заголовок сообщения: Re: Каким образом... Ответить с цитатой

Странно все это, очень странно...
И машины мощные, хотя это может и не важно.

Вот код и пример его выполнения на ПНЕII/200
(консоль в билдере 5ом, в тексте угловые скобки заменены, т.к. этот форум их не любит):

//--unit1.cpp------
#include "vcl.h"
#pragma hdrstop

#include "stdio.h"
#include "conio.h"
//-------------------
#pragma argsused
//-------------------
BYTE inp(WORD adr)
{
asm{
mov dx, adr
in al, dx
}
return _AL;
}
//-----------
int main(int argc, char* argv[])
{
TDateTime dt=TDateTime::CurrentDateTime();
for(long yi=0;yi"LE"1000000l;yi++)
inp(0xffff);
double ddt=(double)(TDateTime::CurrentDateTime()-dt);
ddt*=(double)SecsPerDay;
printf("\n delta=%.1lf mks\n***********",ddt);
getch();
return 0;
}
//- end unit1.cpp ----

Вывод:

delta=1.4 mks
***********
Причем на ПНЕ III/666
было 1.8 мкс

Порт же FFFFh я привел потому, что такого порта наверняка нет и можно не бояться что что-то испортиться.

Удачи.
Вернуться к началу
Roman_2002



Зарегистрирован: 21.05.2002
Сообщения: 56
Откуда: Львов

СообщениеДобавлено: Ср Июн 05 2002 13:44    Заголовок сообщения: А от так Ответить с цитатой

Теперь всё понятно: ты запускал это дело под каким Windowoz'ом?
Могу спорить что под 9х или Ме
А я то под NT работаю (точнее по 2000), тут и вся заторможеность драйвера сказывается!
Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Roman_2002



Зарегистрирован: 21.05.2002
Сообщения: 56
Откуда: Львов

СообщениеДобавлено: Ср Июн 05 2002 13:46    Заголовок сообщения: А от так Ответить с цитатой

Теперь всё понятно: ты запускал это дело под каким Windowoz'ом?
Могу спорить что под 9х или Ме.
А я то под NT работаю (точнее по 2000), тут такой номер не пройдёт! И тогда вся заторможеность драйвера випрыгивает!
Но даже при такой раскладке задача решена.
Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Adil
Гость





СообщениеДобавлено: Ср Июн 05 2002 14:38    Заголовок сообщения: Re: А от так Ответить с цитатой

Неужели в самом деле код драйвера под NT5 тормознее, чем код на верхнем уровне под Win98, более, чем на порядок?! Или "ОФИГЕТЬ!", или что-то тут не так!

Удачи.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...