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


Помогите разобраться с использованием ЦАП

Вы не вошли.

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

Владимир
04.01.2006 15:03:58
#1

Гость

Помогите разобраться с использованием ЦАП

Помогите разобраться с использованием ЦАП на L783B под XP. К сожалению документация к библиотеке lcomp.dll не слишоом удачная, по тем примерам, которые в ней есть получилось написат работающую программу, но остались вопросы, на которые не удалось найти ответ.

1) Даже если АЦП не требуется, всё равно необходимо задавать его параметры
ADC_PAR_0 ap;
ap.AdcEna = FALSE;
ap.s_Type = L_ADC_PARAM;
ldev->FillDAQparameters(&ap);
ULONG sz1 = 0;
ldev->RequestBufferStream(&sz1 ,L_STREAM_ADC);
Причём приходится вызывать функцию для выделения памяти под большой буфер, иначе InitStartLDevice() не вернёт L_SUCCESS. Так ли это на самом деле?

2) Получилась весьма странная работа ЦАП, после SetParametersStream правильный размер буфера, заполняем его каким-нибудь сигналом. После вызова StartLDevice то, что находилось в буфере воспроизводится, но при этом переменная синхронизации не изменяется, а после того, как буфер будет воспроизведён до конца, он воспроизводиться по новой, даже если была вызвана StopLDevice и программа закрыта.

Владимир
04.01.2006 17:41:14
#2

Гость

Re: Помогите разобраться с использованием ЦАП

Поправка: если в параметрах ЦАП задать
AutoInit = 0,
то после вызова StopLDevice выоспроизведение прекращается, однако переменная синхронизации по прежнему не изменяется. Как узнать о том что часть буфера ЦАП уже воспроизведена, чтоб её можно было обновить, и как воспроизвести буфер один раз, а не циклически до вызова StopLDevice?

04.01.2006 20:36:05
#3

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

Re: Помогите разобраться с использованием ЦАП

работаем с 10... тогда и отвечу тк все у меня на работе лежит...

10.01.2006 09:56:22
#4

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

Re: Помогите разобраться с использованием ЦАП

1) да так... тк ацп основное устройство а цап вспомогательное... такая логика заложена

Переменная синхронизации изменяется только если идет работа по прерывания с ЦАП... иначе читать надо из ячейки DSP... Для ЦАП превые 2 IrqStep отсчетов переносятся во внутреннюю память и если работа с подкачкой, то потом подгружаются данные уже из буфера и каунтер увеличивается, а если нет то идет циклический вывод из буфера... AutoInit=0 при стопе действительно оборвет ввод, но тк время выполнения запроса произвольно то и обрыв будет в произвольном месте...