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


инициализация LTR 114

Вы не вошли.

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

Владимир
13.09.2010 15:35:26
#1

Гость

инициализация LTR 114

Здравствуйте, у нас крейт LTR-U-1 с LTR-114, подключено через USB. Разбираюсь с Вашим примером на Delphi и по ходу дела пытаюсь писать свою, для начала, простенькую программку. Однако, не срабатывает инициализация АЦП - выдается код ошибки -10003 (Недопустимое значение частоты дискретизации). Сравниваю с Вашим примером, вроде всё то же, а не работает.

Подскажите пожалуйста, что я делаю не так???


var
  hltr114 : TLTR114;
  res,i : integer;
  ser_num_str : PChar;
begin
  ser_num_str:=//'//';
  LTR114_Init(@hltr114);
  res:=LTR114_Open(@hltr114, SADDR_DEFAULT, SPORT_DEFAULT,ser_num_str ,CC_MODULE1);
  if res=LTR_OK then WriteSys(//'LTR-114 opened ok//')
                else WriteSys(//'Bad.Res=//'+StrInt(res));
  res:=LTR114_GetConfig(@hltr114);
  if res=LTR_OK then WriteSys(//'GetConfig ok//')
                else WriteSys(//'GetConfig bad. Res=//'+StrInt(res));

  hltr114.LChQnt:=1;
  hltr114.Interval:=0;
  hltr114.FreqDivider:=2;
  hltr114.SpecialFeatures:=0;
  hltr114.SyncMode := LTR114_SYNCMODE_INTERNAL;
  hltr114.AdcOsr := 0;

  for i:=0 to hltr114.LChQnt-1 do
    hltr114.LChTbl[i]:=LTR114_CreateLChannel(LTR114_MEASMODE_U, i+1, LTR114_URANGE_2);

  res:=LTR114_SetADC(@hltr114);
  if res=LTR_OK then WriteSys(//'LTR-114 set ok//')
                else WriteSys(//'Bad. Res=//'+StrInt(res));
***************** Здесь она выдает ошибку -10003

  LTR114_Close(@hltr114);
end;

13.09.2010 16:42:36
#2

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

Re: инициализация LTR 114

Версия ltrapi свежая?
(если хотите обновить - инсталлятор ltrdll_1_xx.exe в архиве http://www.lcard.ru/download/ltr_binary.zip)

В текущей версии там просто проверка на диапазон [2, 8000].

А чему равен на вашем delphi sizeof(TLTR114) и чему (DWord(@hltr114.FreqDivider) - DWord(@hltr114)) ?

13.09.2010 17:45:19
#3

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

Re: инициализация LTR 114

Похоже на проблему выравнивания в структуре TLTR114. Попробуйте зайти в
Project - Options - Compiler.
В Record Field Aligment установите 4.
После этого на всякий случай лучше удалить все .dcu файлы, заново открыть проект и перекомпилировать

Владимир
14.09.2010 10:40:29
#4

Гость

Re: инициализация LTR 114

Спасибо, заработало!

14.09.2010 11:29:14
#5

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

Re: инициализация LTR 114

Можно прописать и в тексте {$ALIGN 4} и на всякий случай {$MINENUMSIZE 4} (сокращенно {$A4} {$Z4})