Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Асинхронный опрос цифровых каналов платы L791

Вы не вошли.

 Поиск | Регистрация | Вход 

Konstantin
25.04.2013 14:25:32
#1

Гость

Асинхронный опрос цифровых каналов платы L791

Здравствуйте. В процессе реализации программы для записи данных с аналоговых входов АЦП платы L791 возникла необходимость опроса цифровых каналов. Ситуация такая: к аналоговому каналу L791 подключен микрофон, а к цифровому входу подключена кнопка (образно...). Необходимо начинать запись с микрофона по нажатию на соответствующую кнопку...
Не могли бы вы описать алгоритм опроса цифровых входов платы в асинхронном режиме. Как я понял, там надо использовать структуру ASYNC_PAR и функцию ioAsync, но не понятен алгоритм работы...
Или посоветуйте пример (если есть), в котором подобная задача решалась... Заранее спасибо!

25.04.2013 15:46:01
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Асинхронный опрос цифровых каналов платы L791

В хелпе lcomp есть  раздел "Как можно..."

там для чтения с цифровых линий такой код:

ASYNC_PAR pp;
pp.s_Type = L_ASYNC_TTL_INP;
pI->IoAsync(&pp);
cout << (USHORT)pp.Data[0] << endl; // в Data[0] данные с цифровых линий

Konstantin
25.04.2013 16:14:02
#3

Гость

Re: Асинхронный опрос цифровых каналов платы L791

Хмм... Уточните, пожалуйста, хелп lcomp это где посмотреть? Как называется документ?

25.04.2013 16:21:15
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 676

Re: Асинхронный опрос цифровых каналов платы L791

/LIBRARY/help/manual.pdf

Konstantin
25.04.2013 16:45:07
#5

Гость

Re: Асинхронный опрос цифровых каналов платы L791

Спасибо!

Konstantin
26.04.2013 09:59:10
#6

Гость

Re: Асинхронный опрос цифровых каналов платы L791

Уточните, пожалуйста, где находится "/LIBRARY/help/manual.pdf"?? Я работаю в Linux...

26.04.2013 12:28:05
#7

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Асинхронный опрос цифровых каналов платы L791

рядом с исходниками драйверов лежат и manual.pdf и manual.htm

Konstantin
26.04.2013 14:14:42
#8

Гость

Re: Асинхронный опрос цифровых каналов платы L791

<"рядом с исходниками драйверов лежат и manual.pdf и manual.htm">
Извините, но в этих мануалах нет раздела "Как можно...". Проверьте, пожалуйста.
P.S. Нашел данный раздел в библиотеке для Windows... Сделал по написанному тестовый примерчик... Но видимо это не совсем то! Я получаю именно данные, а мне нужен только 0 или 1 (есть сигнал или нет сигнала). Может мне вместо L_ASYNC_ADC_INP использовать L_ASYNC_TTL_INP???

Konstantin
26.04.2013 14:16:21
#9

Гость

Re: Асинхронный опрос цифровых каналов платы L791

Ой! Извините, Вы мне TTL и советовали... Это я видимо куда-то не туда посмотрел smile

Konstantin
26.04.2013 15:35:31
#10

Гость

Re: Асинхронный опрос цифровых каналов платы L791

<"ASYNC_PAR pp;
pp.s_Type = L_ASYNC_TTL_INP;
pI->IoAsync(&pp);
cout << (USHORT)pp.Data[0] << endl; // в Data[0] данные с цифровых линий">

Сделал точно так же... Запустил
pI->IoAsync(&pp);
cout << (USHORT)pp.Data[i] << endl;
в цикле от 0 до 16...
В итоге получаю какие-то непонятные цифры... Что-то типа -255, -35000, 1980 и т.д. Я надеялся увидеть там 0 или 1...
Если я делаю в начале инициализацию
pp.Data[i] = 0;
pI->IoAsync(&pp);
а потом в цикле опрашиваю, то получаю -255 на 0 канале, остальные каналы 0. И на кнопку не реагируют. Там надо, наверное как-то разрешить цифровые линии? Только как это сделать? Опишите пожалуйста вкратце алгоритм опроса TTL линий...
Что-то типа:
Подключаем библиотеку, настраиваем DAC_PAR, разрешаем цифровые линии, делаем init, start, читаем данные и т.д.
Уточню, что мне необходимо начать запись с АЦП если на TTL появилась 1...

26.04.2013 15:59:07
#11

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Асинхронный опрос цифровых каналов платы L791

в Data[0] должны быть все 16 цифровых линий считаны. разрешать если и нужно, то только вывод. ничео особенного там инициализировать не нужно.

Konstantin
26.04.2013 17:03:30
#12

Гость

Re: Асинхронный опрос цифровых каналов платы L791

<"в Data[0] должны быть все 16 цифровых линий считаны. разрешать если и нужно, то только вывод. ничео особенного там инициализировать не нужно.">
Ух... А как мне определить статусы каждой цифровой линии в отдельности? По битовой маске?

26.04.2013 17:07:09
#13

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Асинхронный опрос цифровых каналов платы L791

да.

Konstantin
27.04.2013 13:57:44
#14

Гость

Re: Асинхронный опрос цифровых каналов платы L791

Спасибо!