Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Roman_2002
Зарегистрирован: 21.05.2002 Сообщения: 56 Откуда: Львов
|
Добавлено: Вт Июн 04 2002 11:18 Заголовок сообщения: Каким образом сделать задержку |
|
|
Проблема в следующем: когда я начала писать драйвер, то возникла необходимость сделать небольшую задержку (1 мкс хватило бы) На старых машинах по ДОСом это просто делалось: for(int i=0; i |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Adil Гость
|
Добавлено: Вт Июн 04 2002 13:50 Заголовок сообщения: Re: Каким образом сделать задержку |
|
|
Попробуй чтение из порта 0xffff ( inp(0xffff) - где-то 1-1.5 мкс и получится. Хотя на разных машинах по-разному, но я думаю не значительно.
Удачи. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Roman_2002
Зарегистрирован: 21.05.2002 Сообщения: 56 Откуда: Львов
|
Добавлено: Вт Июн 04 2002 14:11 Заголовок сообщения: Re: Каким образом сделать задержку |
|
|
незначительно, то насколько? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Roman_2002
Зарегистрирован: 21.05.2002 Сообщения: 56 Откуда: Львов
|
Добавлено: Вт Июн 04 2002 14:30 Заголовок сообщения: Re: Каким образом сделать задержку |
|
|
А что собой этот порт представляет? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Roman_2002
Зарегистрирован: 21.05.2002 Сообщения: 56 Откуда: Львов
|
Добавлено: Вт Июн 04 2002 16:39 Заголовок сообщения: Re: Каким образом сделать задержку |
|
|
Самое интрересное что получается что задержка при чтении при это составляет не 1-1,5 мкс, а 10-12 мкс. Неужели такие тормаза дает Windriver? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Adil Гость
|
Добавлено: Вт Июн 04 2002 16:48 Заголовок сообщения: Re: Каким образом сделать задержку |
|
|
Что-то многовато. А что у тебя за машина? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
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+ картина та же самая |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
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 я привел потому, что такого порта наверняка нет и можно не бояться что что-то испортиться.
Удачи. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Roman_2002
Зарегистрирован: 21.05.2002 Сообщения: 56 Откуда: Львов
|
Добавлено: Ср Июн 05 2002 13:44 Заголовок сообщения: А от так |
|
|
Теперь всё понятно: ты запускал это дело под каким Windowoz'ом? Могу спорить что под 9х или Ме А я то под NT работаю (точнее по 2000), тут и вся заторможеность драйвера сказывается! Спасибо. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Roman_2002
Зарегистрирован: 21.05.2002 Сообщения: 56 Откуда: Львов
|
Добавлено: Ср Июн 05 2002 13:46 Заголовок сообщения: А от так |
|
|
Теперь всё понятно: ты запускал это дело под каким Windowoz'ом? Могу спорить что под 9х или Ме. А я то под NT работаю (точнее по 2000), тут такой номер не пройдёт! И тогда вся заторможеность драйвера випрыгивает! Но даже при такой раскладке задача решена. Спасибо. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Adil Гость
|
Добавлено: Ср Июн 05 2002 14:38 Заголовок сообщения: Re: А от так |
|
|
Неужели в самом деле код драйвера под NT5 тормознее, чем код на верхнем уровне под Win98, более, чем на порядок?! Или "ОФИГЕТЬ!", или что-то тут не так!
Удачи. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|