Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

Абсолютное значение времени   Найти похожие ветки 

 
Ega23 ©   (2005-06-01 17:19) [0]

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

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


 
Kerk ©   (2005-06-01 17:22) [1]

rdtsc или GetTickCount ?


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

Посмотри

QueryPerformanceCounter и QueryPerformanceFrequency

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


 
Ega23 ©   (2005-06-01 17:25) [3]

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


 
Ega23 ©   (2005-06-01 17:26) [4]

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


 
Kerk ©   (2005-06-01 17:27) [5]

Ega23 ©   (01.06.05 17:26) [4]

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


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

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


 
ferr ©   (2005-06-01 17:37) [7]

function RDTSC:int64;
asm
 RDTSC;
end;

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

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


 
raidan ©   (2005-06-01 17:40) [8]

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


 
ferr ©   (2005-06-01 17:53) [9]

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


 
pasha_golub ©   (2005-06-01 17:58) [10]

Юзать QNX ;0)


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

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


 
Jeer ©   (2005-06-02 10:13) [12]

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

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


 
REA   (2005-06-02 11:34) [13]

QNX неплохо справляется с real-time задачами. Я под него систему сбора информации писал. А обязательно этот провод, который между землей висит делать? Может железную схему компенсации сигнала сделать?


 
Ega23 ©   (2005-06-02 11:37) [14]

QNX неплохо справляется с real-time задачами. Я под него систему сбора информации писал. А обязательно этот провод, который между землей висит делать? Может железную схему компенсации сигнала сделать?

Это любой провод так работать будет. Шлейф в компе, например. Малейшая вибрация корпуса (топнул в комнате кто-то сильно) - провод задёргался - пошла наводка. Экранирование, конечно, помогает, но всё не заэкранируешь.

Про QNX знаю, сами используем. Но там - не прокатит.


 
REA   (2005-06-02 12:27) [15]

Ну есть мультимедийные еще таймера - можно попробовать их использовать. А нельзя измеритель без проводов подключить? Или это другой провод какой то не связанный с измерениями. Насчет быстрой дискретизации - тоже выход. Мы недавно делали съем данных с L-Card АЦП - втыкается в USB порт, пример работы есть на Delphi, буфер там приличный, время нарезанное по внутреннему таймеру.


 
Ega23 ©   (2005-06-02 12:46) [16]

А нельзя измеритель без проводов подключить?

А как ты себе это представляешь? В любой установке - масса проводов.


 
Jeer ©   (2005-06-02 12:59) [17]

Ega23 ©   (02.06.05 12:46) [16]

Значит надо переходить на передачу более мощным аналоговым сигналом или вооще переходить на цифру,например, использовать ШИМ- или ЧИМ- сигнал.


 
REA   (2005-06-02 13:10) [18]

Ну как представляю: плата с АЦП размером с коробок с микроконтроллером. Можно даже с аккумулятором, чтобы питание не тащить. А от нее уже сигнал в цифре, можно по радиоканалу. Думаю готовых таких тоже навалом со стандартными протоколами.


 
Ega23 ©   (2005-06-02 13:17) [19]

Ну как представляю: плата с АЦП размером с коробок с микроконтроллером. Можно даже с аккумулятором, чтобы питание не тащить. А от нее уже сигнал в цифре, можно по радиоканалу. Думаю готовых таких тоже навалом со стандартными протоколами.

Есть такая штука - CAMAC - фактически внешняя шина. В него контроллеры пихать можно. Всё это к компу подсоединяется.


 
REA   (2005-06-02 14:37) [20]

Кинь ссылочку плз. - авось пригодится. А часов у нее нет своих?


 
REA   (2005-06-02 14:38) [21]

Если это вот это:
http://www.lecroy.com/lrs/appnotes/introcam/introcam.htm
то не надо кидать, я ядреной физикой не занимаюсь (к сожалению).


 
Ega23 ©   (2005-06-02 14:40) [22]

Кинь ссылочку плз. - авось пригодится. А часов у нее нет своих?

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


 
Jeer ©   (2005-06-02 15:06) [23]

Ega23 ©   (02.06.05 14:40) [22]

Комп тоже не слабо фонит.
Я использовал PCI-карты ADLink с гальванической развязкой.


 
Ega23 ©   (2005-06-02 15:15) [24]

2 Jeer ©   (02.06.05 15:06) [23]

Да комп-то может достаточно далеко от установки стоять...
В общем, батя ветку посмотрел, сказал, что
Kerk ©   (01.06.05 17:27) [5]  - именно то, что ему нужно.


 
REA   (2005-06-02 16:19) [25]

Да ну нафиг - какие такты?: когда твоему потоку процессор время даст, тогда и засечешь. А если он отвлекся на свапование, то извини подвинься.


 
Jeer ©   (2005-06-02 17:32) [26]

Ega23 ©   (02.06.05 15:15) [24]

Неверно.


 
Ega23 ©   (2005-06-02 19:10) [27]

2 Jeer ©   (02.06.05 17:32) [26]
Пушшай сам разбирается.


 
Jeer ©   (2005-06-02 19:27) [28]

Как-что, так бате отдуваться ?:)


 
Ega23 ©   (2005-06-02 19:33) [29]

Как-что, так бате отдуваться ?:)

Есть у меня некоторое подозрение, что всё это будет под DOS-ом реализовано...


 
Просто Джо ©   (2005-06-02 19:34) [30]


>  [29] Ega23 ©   (02.06.05 19:33)
> Есть у меня некоторое подозрение, что всё это будет под
> DOS-ом реализовано...

Да оно и к лучшему, имхо.


 
Jeer ©   (2005-06-02 19:47) [31]

Вечный DOS.:)


 
Ega23 ©   (2005-06-02 19:50) [32]

Вечный DOS.:)

Там прерывания захватить можно  :о)



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.025 c
1-1118293185
Wood
2005-06-09 08:59
2005.06.29
Иконка в Application.MessageBox


14-1117462017
Fessio
2005-05-30 18:06
2005.06.29
хелп плизз с методом резолюций


14-1117827326
Alx2
2005-06-03 23:35
2005.06.29
Прошу помощи астрофизиков! СРОЧНО!


3-1116494268
Victor!
2005-05-19 13:17
2005.06.29
ADOQuery медленно работает по сети?


14-1117663700
KilkennyCat
2005-06-02 02:08
2005.06.29
город Заполярный, моя родина, блин...