Вниз
Скачать: CL | DM;

Осциллографическая плата   Найти похожие ветки 

 
AndreyS ©   (2002-09-05 15:40) [0]

Вопрос по Осциллографической плате.
Есть драйвер для осциллографической платы в виде DLL.
Я вызываю функцию снять данные. Мне нужна высокая
стабильность задержки относительно момента запуска
(по независимому осциллографическому таймеру который дает
сиганал проге опять же через функции в DLL) для запуска функции
оцифровки к АЦП на плате. Какие меры надо предпренять, чтобы это
было лучше всего. Может директивы компиляции по таблице вызовов (не
знаю как в Delphi все этоделается). Как обезапасить от неожиданного
тормаза системой вызова функции (вызывается 10 раз в секунду). Может
преоретет перед вызовом менять, но с такой частотой? А наивысший
чреват. В общем что посоветуете?


 
Наезжалкин   (2002-09-05 16:10) [1]

Опрос по мультимедийному таймеру. timeSetEvent()... etc


 
AndreyS ©   (2002-09-05 16:35) [2]

Речь идет о точности порядка одной микросекунды. А какова частота дискритизации
мультимедийного таймера? И что именно вы имеете ввиду? Это что даст- финт в
смысле приоретета или что? Ну с небольшими временами я согласен, а как с микросекундой
быть? Здесь наверно нужно делать типа претриггера с освобождением "окна" под
наивысший приоретет моей проги на несколько десятков микросекун. Возможно и так как вы
говорите с Мульмедиа, но тогда если можно поподробнее.


 
Наезжалкин   (2002-09-05 16:41) [3]

"Речь идет о точности порядка одной микросекунды."
Ах, вот оно что! Ну, тогда используйте прерывания. Обработчик в драйвере.


 
AndreyS ©   (2002-09-05 17:09) [4]

Согласен. Это самое лучшее. Так скоты производители платы кроме библиотеки DLL
никаких данных о регистрах и низкоуровневых команд не дали. Вот и приходится искать
пути через одно место. Придется делать нечто среднее- драйвер на драйвере и через
DLL поганяет - вот такая ж...


 
слон   (2002-09-06 05:58) [5]

Не понял откуда взялась микросекунда?
писали же

... функции (вызывается 10 раз в секунду).



 
AndreyS ©   (2002-09-06 14:45) [6]

10 раз в секунду- это повторение импульсов запуска на внешний триггер (запуск) платы.
После каждого такого импульса надо включить на плате АЦП(плата многоканальная) так чтобы
стабильность временной задержки между импульсом запуска и началом работы АЦП была
не хуже чем одна микросекунда. Известно что аппаратная стабильность задержки
осциллографической платы между фронтом импульса запуска (на плату от каго-нибудь
прибора например) и сигналом выдаваемом ею компьютеру по PCI лучше 50 наносекунд.
Надо сделать стабильным по времени отклик компьютера на этот импульс.
Под откликом понимается следующий путь. Сигнал с PCI обрабатывается одной
функцией из DLL (уже запущенной) после чего она вызывает другую функцию
из DLL для запуска АЦП. Предустановка временной задержке на плате
между сигналом с триггера и началом АЦП у производителя не реализована
(вот такие дебилы -это же самое лучшее). Причем это наверняка возможно
если бы они дали полную документацию по прошивке и регистрам - ан нет.
Вот и остается пытатьс делать через одно место. Итак уточню вопрос.
Есть сигнал по PCI с частотой 10 герц. На каждый такой сигнал надо выдавать
ответный сигнал плате со стабильностью задержки (от сигнала к сигналу) порядка
одной микросекунды. Учитывая что все реализуется через DLL надо
заставить систему реагировать на все вызовы и прочее с постоянной
задержкой (стабильность лучше 1 микросекунда) и еще в добавок и максимально
малой задержкой.
Частота шины 133 мегагерца (а это примерно 10 наносекунд), так что
задача коректна. Есть ли идеи у кого? Да, под Досом я не хочу, да и драйвера нет.
Спасибо за внимание.


 
AndreyS ©   (2002-09-06 15:03) [7]

Забыл добавить. Прерывание отрабатывает опять функция производителя о наличие
сигнала триггера на плате. После чего дает TRUE. Я после этого вызываю функцию
начала АЦП из DLL. Будем считать что функция отрабатывающая прерывание платы
о наличие запуска действует стабильно.



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
4-21856
Mazenrat
2002-09-24 15:42
2002.11.07
RegQueryValueEx. Помогите!


1-21627
-Alex-
2002-10-26 17:10
2002.11.07
Перехват второй копии и запуск функции.


4-21870
R0nin
2002-09-25 15:46
2002.11.07
Работа со шрифтами by WinAPI


14-21771
AL2002
2002-10-18 13:04
2002.11.07
Дёргается веко


3-21385
Higs
2002-10-17 18:11
2002.11.07
Как скопировать DBGrid в другой DBGrid?




   Наверх