Форум: "Основная";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизАбсолютное значение времени Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.042 c