Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ромка Гость
|
Добавлено: Чт Окт 11 2001 14:15 Заголовок сообщения: Таймер в Виндовс |
|
|
Hi!
М.б. хто-нить знает как сгенерить задержку под Виндами ~10-100 нс? |
|
Вернуться к началу |
|
|
Братья Карамазовы Гость
|
Добавлено: Пт Окт 12 2001 02:21 Заголовок сообщения: Против лома нет приема |
|
|
Не то, что нана, даже микросекундные задержки на стандартном PC не доступны. Тик таймера - 20милисек. Увы. |
|
Вернуться к началу |
|
|
Mirage Гость
|
Добавлено: Пт Окт 12 2001 05:56 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
Дело в том, что Windows не является системой реального времени. Это значит, что если даже какое, то устройство и будет посылать сигнал млм вызывать прерывание через 10 нС или каждые 10 нС,э то нет никакой гарантии, что операционка отреагирует вовремя..... Если не использовать Unix, то можно попробовать в DOS сесии программированием таймера. |
|
Вернуться к началу |
|
|
Serega
Зарегистрирован: 10.02.2002 Сообщения: 8 Откуда: Дмитров
|
Добавлено: Пт Окт 12 2001 08:35 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
В DDK подобные штучки есть, тем более что такие задержки только для драйвера и нужны |
|
Вернуться к началу |
|
|
Serega
Зарегистрирован: 10.02.2002 Сообщения: 8 Откуда: Дмитров
|
Добавлено: Вс Окт 14 2001 13:36 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
Все дело в том,что Винда не являеться системой с вытеснением задачи. поэтому если ты не отдашь управления ядру то можешь делать все что хочешь. и гарантированно все ресурсы процессора будут твоими никто их несможет отобрать у текущей задачи. Дальше сам думай |
|
Вернуться к началу |
|
|
Ромка Гость
|
Добавлено: Вс Окт 14 2001 14:35 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
DDK - это конечно хорошо, но придется писать драйвера для каждой OS (95/NT/2000). Кстати где можно доку по DDK нарыть? |
|
Вернуться к началу |
|
|
la_serg
Зарегистрирован: 26.10.2001 Сообщения: 75 Откуда: Обнинск
|
Добавлено: Пн Окт 15 2001 16:08 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
alert("test "); |
|
Вернуться к началу |
|
|
Алекс Ковалев Гость
|
Добавлено: Вт Окт 16 2001 18:03 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
Можно использовать Multimedia Timers (см. Win32 SDK). А кроме того, никто не отменял RTC - часы реального времени на материнской плате, которые могут "тикать" и гораздо чаще, чем через 20 мс. |
|
Вернуться к началу |
|
|
Ромка Гость
|
Добавлено: Чт Окт 18 2001 07:58 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
Ладно. Всем спасибо. Только где по этому добру русскую доку взять? |
|
Вернуться к началу |
|
|
sandrey Гость
|
Добавлено: Ср Окт 24 2001 15:52 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
Взято из книги "Библиотека программиста Delphi3"
Coriolis Group books
В Pentium-ах есть программно доступный регистр количества машинных тактов, считающий от момента включения питания или от сброса
const D32=$66;
{ ------------------------------ } function TForm.RDTSC: comp; var TimeStamp: record case byte of 1: (Whole: comp); 2: (Lo,Hi: LongInt); end; begin asm db $0f; db $31; // команда съема значения счетчика машинных тактов {$ifdef Cpu386} mov [TimeStamp.Lo],eax mov [TimeStamp.Hi],edx {$else} db D32 mov word ptr TimeStamp.Lo,AX db D32 mov word ptr TimeStamp.Hi,DX {$endif} end; result:=TimeStamp.whole; end;
Естественно длительность тактов на разных пнях отличается и это надо будет предварительно подсчитать и далее учитывать. |
|
Вернуться к началу |
|
|
serg44 Гость
|
Добавлено: Ср Ноя 14 2001 15:51 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
Если менять скорость счета в системном таймере, то грохнется Windows |
|
Вернуться к началу |
|
|
Сергей
Зарегистрирован: 30.01.2002 Сообщения: 48
|
Добавлено: Пн Дек 10 2001 12:41 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
Требую продолжения банкета!!! Ситуация, генерирую в делфи5 формы, содержащие компонент Timer1:TTimer, в родительской форме по этому таймеру отрабатываю событие без проблем, а вот добиться того от тамеров в сгенерированных формах не получается? Помогите ржавому чайнику... |
|
Вернуться к началу |
|
|
Паша Гость
|
Добавлено: Пн Апр 15 2002 19:20 Заголовок сообщения: Re: Таймер в Виндовс |
|
|
Хотя это не в духе объектно-ориентированного программирования, можно использовать непосредственно функции API Windows, предназначенные для отсчета времени, например, function GetTickCount: DWORD;, которая возвращает количество мс, прошедших с последнего старта Windows. Применяя ее в многопоточном приложении (для того, чтобы получить приоритет задачи побольше), можно получить весьма точный отсчет времени (или задержку). Описание - в SDK. Повозившись с циклами, можно придумать аналог таймера, даже более частый. |
|
Вернуться к началу |
|
|
|