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


E-140 и Delphi

Вы не вошли.

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

Владимир
18.10.2007 16:23:00
#1

Гость

E-140 и Delphi

Доброго времени суток!

Пытаюсь сделать однократный вывод на ЦАП, но почему-то не получается. Программа DacSample из примеров к Borland C++ работает, значит с платой все нормально. 

Пытаюсь сделать так:
###########################################################################
pModule := CreateLInstance(pCHAR('e140'));
for i := 0 to 126 do if pModule.OpenLDevice(i) then  break;
if not pModule.GET_MODULE_DESCRIPTION(@ModuleDescription) then FinalText('Не могу получить информацию о модуле!')
else AddText(' GET_MODULE_DESCRIPTION() --> OK');
if pModule.DAC_SAMPLE(pShort(1024),0) then AddText('OK!')
                                      else FinalText('Don''t work');

pModule.CloseLDevice;
pModule.ReleaseLInstance;
###########################################################################

Чтение служебной информации из ППЗУ модуля походит успешно, однако возникает ошибка доступа по адресу 00322450 в модуле "Lusapi.dll".
Как наконец-то сделать этот вывод? smile

Владимир
18.10.2007 17:04:49
#2

Гость

Re: E-140 и Delphi

по идеи в коде еще строчка с задержкой пропущена...

19.10.2007 17:39:23
#3

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

Re: E-140 и Delphi

1. Какая операционная система используется?
2. Я не совсем понял в каком именно месте происходит ошибка доступа.
3. Есть же готовый пример ReadData под Delphi. Он работает? Если работает, то убираете из него всё, что относится к сбору данных и вставляете вызов функции DAC_SAMPLE().

Владимир
20.10.2007 12:31:39
#4

Гость

Re: E-140 и Delphi

1. WinXP SP2
2. по ходу на самой функции DAC_SAMPLE()
3. не поверите, но там та же ошибка вылетает ...

переставлю библиотеку еще раз попробую

Владимир
24.10.2007 18:08:45
#5

Гость

Re: E-140 и Delphi

Обновил библиотеку до Lusbapi.dll: 3.1
Проблема осталась...
##############################################################
Exception EAccessViolation in module Lusbapi.dll at 000024FA.
Access violation at address 003224FA in module 'Lusbapi.dll'. Read of address 000003E8.
##############################################################

Не понимаю где в такой программе можно допустить ошибку ... но факт остается фактом.
Функция DAC_SAMPLE() возвращает ошибку.

Пришлите пожалуйста на почту пример однократного вывода на Delphi в самой простой его реализации.

24.10.2007 19:47:33
#6

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

Re: E-140 и Delphi

А штатный пример ReadData под Delphi по прежнему не работает?

Владимир
25.10.2007 02:52:08
#7

Гость

Re: E-140 и Delphi

Штатный пример ReadData работает, насколько правильно правда не знаю, но запускается без проблем. Однако, если вставить туда ф-цию DAC_SAMPLE() в виде строчки pModule.DAC_SAMPLE(pShort(1024),0), удалив при этом весь код, относящийся к сбору данных, то вылетает ошибка. Без этой ф-ции программа компилируется нормально.

25.10.2007 10:09:18
#8

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

Re: E-140 и Delphi

1. А если вместо DAC_SAMPLE(pShort(1024),0) ввести переменную DacSample типа SHORT и использовать DAC_SAMPLE(@DacSample, 0)?
2. Пример работы с ЦАП выслал письмом.

Владимир
26.10.2007 16:27:51
#9

Гость

Re: E-140 и Delphi

Спасибо Сергей!

Скачал последнее "Руководство программиста" действительно первым параметром нужно передавать указатель...