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


L780(B), ЦАП(ы), LCOMP

Вы не вошли.

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

Paul
09.11.2006 00:24:17
#1

Гость

L780(B), ЦАП(ы), LCOMP

"О себе" smile

handle 7d4
load status 0
plata test 0
SerNum 7L851115
BrdName L780
Rev B
DspType 2184
IsDacPresent 1
Quartz 14745600
Slot parameters
Base        a000
BaseL         80
Mem     e0000000
MemL       10000
Type           6
DSPType      888
Irq            4


   ...................................
   dacPar.t1.s_Type = L_DAC_PARAM;
   dacPar.t1.AutoInit=0; // НЕЗАЦИКЛЕН
   dacPar.t1.dRate=10.0; // частота в кГц
   dacPar.t1.FIFO=1024;     // размер буфера (по описанию 1024)
   dacPar.t1.IrqStep=1024; // равен FIFO
   dacPar.t1.Pages=2;      // по описанию 2
   dacPar.t1.IrqEna=1;      // по описанию непонятно(пробовалось 0,1,2)
   dacPar.t1.DacEna=1;      // разрешение заполнения буфера в памяти PM DSP
   dacPar.t1.DacNumber=0; // (не используется - в данных)
   pI->FillDAQparameters(&dacPar.t1);
   // После выполнения:Ok
   // dRate = 9.9902439024390

   ULONG db=2048;
   pI->RequestBufferStream(&db, L_STREAM_DAC);
   // После выполнения:Ok
   //  db = 2048

   pI->SetParametersStream(&dacPar.t1,&db, (void **)&data1, (void **)&sync1,L_STREAM_DAC);
   // После выполнения:Ok
   // db = 1024
   // dacPar.t1.FIFO = 512
   // dacPar.t1.IrqStep = 512
   
//   int i;
//   for(i=0;i<1024;i++) data1[i]=((USHORT)(i*sin((2.0*(3.1415*i)/1024.0)))&0xFFF)|0x0000;

//    pI->EnableCorrection(); //Ok
// Инициализируем внутренние переменные драйвера


    pI->InitStartLDevice(); // Ups!
    //( !!!!!!!!  вернула 1 !!!!!!!!!!!! )

   status=pI->StartLDevice(); // Ups!
    //( !!!!!!!!  вернула 1 !!!!!!!!!!!! )
   ..................................


Еще IoAsync(...) - на ЦАП(ы) без проблем.
Потоковый ввод АЦП - без проблем.

Вопрос:
1. Есть где-тА работающий исходник (желательно VC6), для потокового непрерывного вывода L780(B).

2. По описанию не понятно, что делать после SetParametersStream(...), надо запускать
InitStartLDevice(), StartLDevice() ... ?
Переменная sync1 - не меняется при dacPar.t1.AutoInit=1.

09.11.2006 10:17:15
#2

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

Re: L780(B), ЦАП(ы), LCOMP

еще АЦП проинитить надо...ЦАП без инициализации АЦП работать не будет... пример L780.OSC...

Paul
10.11.2006 08:27:51
#3

Гость

Re: L780(B), ЦАП(ы), LCOMP

Сколько рыл Вашу документацию об этом ни слова.
Я не на работе, проверить не могу. Вопрос авансом.
АЦП – сам по себе. Частота работы, количество каналов, режим (диф., с общей землей) …
В примере АЦП - 100 кГц, ЦАП - 100 кГц,
В lcard_32.dll, для L264 – была функция одновременного «проигрывания на цапе», в режиме автоинициализации, и чтения с АЦП. Можно здесь такое замутить.
Есть такой ешо коварный момент, там можно было проиграть в режиме автоинициализации, некратный буферу фифо(половинкам) размер. Понятно, что можно интерполировать … .

Из документации:
L-761/780/783/L-1450 - полностью так, как описано кроме:
DacNumber - не задействован (номер ЦАП задается в самих данных);
???????????????
IrqEna,Pages- прерывания и реальный кольцевой буфер работают только в L-1450, для остальных плат Pages всегда надо задавать 2;
???????????????
IrqStep - должен быть равен FIFO;

10.11.2006 15:31:20
#4

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

Re: L780(B), ЦАП(ы), LCOMP

Проигрывать можно... там по жизни автоинициализация.. а номер действительно в данных, дока слегка устарела. Пример смотрите...