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

Таймер в Виндовс

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





СообщениеДобавлено: Чт Окт 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 Smile");
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Алекс Ковалев
Гость





СообщениеДобавлено: Вт Окт 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. Повозившись с циклами, можно придумать аналог таймера, даже более частый.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: 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
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...