Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Абсолютное значение времени [Win2k]


Страницы:   1 2

Ega23 ©   (2005-06-01 17:19:00) 

Можно ли получить значение DateTime (или другого типа) более точное, чем одна миллисекунда?
Например, завязаться на такты процессора?

Задача такая: с внешнего устройства приходит событие. Нужно чётко определить его время в рамках операционки.


Jeer   (2005-06-02 10:13:00) [21]

Платформа w2k дает возможность работать в режиме "мягкого" real-time на уровне системного кванта 10 ms.
В случае твоего "папика" имеет смысл использование PCI-карты АЦП или внешнего АЦП.
В этом случае буферится массив измерений, а из операционки с дискретом 10-20 мс он считывается по необходимости.

Если уйти на уровень DOS, то можно работать спокойно с прерываниями.


Ega23   (2005-06-02 10:00:00) [22]

Вообще задача следующая (это папик ко мне за советом обратился):
Есть внешняя измерительная установка - всякие детекторы, предусилители и т.п. Ожидаемое количество событий (интенсивность излучения) - порядка 20 - 30 событий в секунду. Т.к. измерение проходит в низко-энергетической области, то начинает наводки давать микрофоника (висит провод, по нему ток идёт, между проводом и землёй - ёмкость получается. При малейшем колебании провода имеем изменение ёмкости).
Микрофонику можно "отсечь", поскольку известны характеристики сигнала. Но для этого надо привязаться ко времени и сделать достаточно быструю дискретизацию сигнала. Вот здесь и встаёт вопрос  о каком-то генераторе отсчётов. В принципе, у бати есть внешний генератор, как раз для CAMAC-а. Беда в том, что этот гад сам микрофонику свою дополнительную даёт. Поэтому надо попробовать привязаться к компу - может так лучше получится?


pasha_golub   (2005-06-01 17:58:00) [23]

Юзать QNX ;0)


ferr   (2005-06-01 17:53:00) [24]

А я чё, я Kerk'a дополнил.


raidan   (2005-06-01 17:40:00) [25]

>ferr ©   (01.06.05 17:37) [7]
rdtsc - крут, но если у мя A64 и включен Q'n'Q?
Частота процессора плавает в зависимости от нагрузки...


ferr   (2005-06-01 17:37:00) [26]

function RDTSC:int64;
asm
 RDTSC;
end;

var
c1,c2:int64;
q:integer;
begin
C1:=RDTSC;
sleep(1000);
c2:=RDTSC;
writeln((c2-c1)/Mhz);
readln;

Может и наврал :)


REA   (2005-06-01 17:34:00) [27]

Таймер все равно кривой абсолютный - сползет. И тот что в биосе получше, но тоже сползет. Лучше внешние железные часы. И опять же 1мс довольно сложно обеспечить в течение длительного промежутка времени даже с термокомпенсацией. А в чем задача в целом?


Kerk   (2005-06-01 17:27:00) [28]

Ega23 ©   (01.06.05 17:26) [4]

так и пользоваться
asm
 rdtsc
end;
возвращает в edx:eax кол-во тактов с момента старта процессора


Ega23   (2005-06-01 17:26:00) [29]

rdtsc - это чьё? Как ей пользоваться, например на asm-е?


Ega23   (2005-06-01 17:25:00) [30]

GetTickCount - это с точностью до миллисекунды. А точнее можно?
Пусть даже не на WinAPI, а на уровне ядра?


Суслик   (2005-06-01 17:24:00) [31]

Посмотри

QueryPerformanceCounter и QueryPerformanceFrequency

может чем поможет


Kerk   (2005-06-01 17:22:00) [32]

rdtsc или GetTickCount ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо