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


Использование функции PUT_DM_ARRAY()

Вы не вошли.

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

Иван
27.01.2006 11:45:41
#1

Гость

Использование функции PUT_DM_ARRAY()

Задача: вывести на аналоговом разъёме устройства E14-440 синусоидальный сигнал. Пишу на DELPHI.

Что делаю:
1) Заполняю массив DacBuffer[] типа WORD нужной требуемой информацией.
2) Использую следующую конструкцию:
pE440.PUT_PM_ARRAY(dm.DacFifoBaseAddress, dm.DacFifoLength, @DacBuffer);
3) Запускаю ЦАП

На выходе вижу ТОЛЬКО положительные витки синуса
Ошибка понятна - нужно использовать какое-то преобразование типов, но в силу отсутствия достаточного опыта программирования ничего сделать не могу

27.01.2006 14:04:22
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,494

Re: Использование функции PUT_DM_ARRAY()

Смотрите исходные тексты штатного примера потокового вывода данных на ЦАП модуля. Этот пример можно найти на нашем CD-ROM в директории USB/E14-XXX/E14-440/Examples/BC5/WriteData.

Иван
27.01.2006 14:26:14
#3

Гость

Re: Использование функции PUT_DM_ARRAY()

Я не понимаю, зачем использовать потоковый вывод данных на ЦАП для переодической функции.

Даже если и использовать потоковый вывод, то всё равно нужно перед тем, как использовать функцию потокового вывода запустить ЦАП. Перед тем как запустить ЦАП нужно проинициализировать его начальными данными при помощи функции PUT_DM_ARRAY()(так написано в Руководстве программиста).

Именно с этим у меня и возникли проблемы.
В аргументах функции PUT_DM_ARRAY() записываемая информация типа SHORT, в WriteData типа WORD.

27.01.2006 16:05:58
#4

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,494

Re: Использование функции PUT_DM_ARRAY()

На мой взгляд преобразование типов не имеют никакого значения в данном случае. Вы просто не правильно формируете массив данных для ЦАП. А ведь в руководстве программиста описан требуемый формат слова данных для ЦАП. Как в жизни это делается показано в вышеупомянутом примере. (Подсказка: попробуйте найти в исходном тексте место использования функции PUT_DM_ARRAY()).