Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Система";
Текущий архив: 2002.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
14-21733
Anatoly Podgoretsky
2002-10-18 07:59
2002.11.07
Именинники 18 октября


3-21411
@Ujin
2002-10-18 12:35
2002.11.07
Мастера! Как определить число записей в фильтрованной таблице?


1-21685
Andrew2
2002-10-28 11:04
2002.11.07
функция в dll


14-21757
Ketmar
2002-10-18 15:39
2002.11.07
Кэтмару винт купили! второй. на 60GB. будет там пингвин жить...


1-21502
cybermonk
2002-10-24 12:55
2002.11.07
Word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский