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


to Poul: ЦАП L780M

Вы не вошли.

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

GsN
16.11.2006 16:27:09
#1

Гость

to Poul: ЦАП L780M

Здравствуйте, помогите мне до конца разобраться с ЦАПом L780M. Пишу в LV, используя wlcomp.dll. Проделал следующее: заполнил FillDAQparameters, SetParametersStream, добавил RequestBuffer для ЦАПа. Sync addr и Data addr из SetParametersStream возвращаются корректные (не нули), похожи на аналогичные для АЦП. Затем создал массив с данными типа: (data_array &0xFFF) | 0x0000. Как я понимаю 0х0000 – задается канал ЦАПа, а 0xFFF – код останова. Если я не прав, поправьте пожалуйста!  Затем перед InitStartLDevice+StartLDevice вставил фрейм с функцией PutDataToBuffer как Вы мне советовали ранее. Все прошлые ошибки исправил, программа не выдает сообщений об ошибках. Сбор с АЦП работает. Но на выходе ЦАПа какая-то ерунда.

Собственно вопросы: 1. Как осуществить подкачку данных, чтобы ЦАП циклически выводил некоторый сигнал, например синус??? Что и в каком месте программы нужно вставить? 2. Нужно ли использовать счетчик заполнения буфера для случая с ЦАПом (имею ввиду функцию GetSyncData)?

Ответьте пожалуйста, если можно, подробно. Буду очень благодарен!

16.11.2006 17:15:01
#2

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

Re: to Poul: ЦАП L780M

данные для цап пихать в буфер  надо как ULONG, в виде "данное(16 бит) 0(16 бит) данное 0"....., 0xFFF это маска на 12 бит....

GsN
16.11.2006 17:22:49
#3

Гость

Re: to Poul: ЦАП L780M

А поповоду вопросов о подкачке данных что скажете?

"1. Как осуществить подкачку данных, чтобы ЦАП циклически выводил некоторый сигнал, например синус??? Что и в каком месте программы нужно вставить? 2. Нужно ли использовать счетчик заполнения буфера для случая с ЦАПом (имею ввиду функцию GetSyncData)?"

GsN
17.11.2006 13:41:04
#4

Гость

Re: to Poul: ЦАП L780M

Вы ответили: «данные для цап пихать в буфер надо как ULONG, в виде "данное(16 бит) 0(16 бит) данное 0"....., 0xFFF это маска на 12 бит....»

Если честно, то ничего не понял. Напишите как это реализовать на C++. В чем отличие для L780M от примера L780.OSC? В примере следующее:

for(int i=0;i<2048;i++) data1[i]=((USHORT)(i*sin((2.0*(3.1415*i)/1024.0)))&0xFFF)|0x0000;
   for(int i=1024;i<4096;i++) data1[i]=((USHORT)(512.0*sin((2.0*(3.1415*i)/1024.0)))&0xFFF)|0x0000;

17.11.2006 15:03:06
#5

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

Re: to Poul: ЦАП L780M

ну массив обявить LONG и класть туда... счетчик заполнения нужно использовать..иначе как опрделеить что данные вывелись...

GsN
19.11.2006 17:48:20
#6

Гость

Re: to Poul: ЦАП L780M

т.е. массив надо заполнять примерно так:
for(int i=0;i<4096;i++)
{
data[i]=(ULONG)(1024.0*sin(2.0*3.14*i/1024.0));
}

0xFFF как вы говорите не надо. какой тогда код остановки вывода на цап для 780М? Или он не нужен? Вроде бы номер канала цап тоже задается в самих данных? как тогда?

GsN
20.11.2006 15:28:04
#7

Гость

Re: to Poul: ЦАП L780M

Вопрос снимается, разобрался уже.....Спасибо за советы!