Форум: Техническая поддержка

Тема: Драйвер vxdapi - ввод данных для L1250.

Вы не вошли.

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

Максим
18.04.2001 14:32:48
#1

Гость

Драйвер vxdapi - ввод данных для L1250.

Здравствуйте!

Может это решит все проблемы: у Вас есть какой-нибудь "мануал" по использованию драйвера vxdapi, кроме vxdapi.hlp?

Если нет, то вопрос такой. Я попытался ввести данные с карты L1230 (надеюсь, что она должна также работать как и L1250). Ваша тестовая программа у меня не пошла. Я ее подсократил (см. код ниже) и хотел просто проследить за поведением переменной синхронизации sync. Однако программа выдает значение этой переменной равной нулю. В чем может быть дело?

И еще я правильно понимаю, что если fifo - размер половины буфера платы, irqstep - шаг генерации прерываний, и fifo == irqstep, то переменная sync должна обновляться после заполнения половины буфера платы?

Ничего, что я засунул код программы в сообщение, или это как-то надо делать по другому?

//------------------------------------------
#include "stdafx.h"
#include <dos.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <vxdapi.h>

int status;

int main(int argc, char* argv[])
{
//------------------------------------------------
// Загрузим и откроем драйвер

    HANDLE        hDevice;
    DEV_REG_UNI    dev;

    dev.size=sizeof(dev);
    hDevice=OpenLDevice(0,&dev);   
   
//------------------------------------------------
// Загрузим биос в сигнальный процессор

   LoadBios(&dev,"lbios009") != 0

//------------------------------------------------
// Протестируем плату, в качестве параметра передаем
// данные, характерные для данного слота

   if (PlataTest_1251(&dev) == 0 )
        printf("//n Board not found.");

//------------------------------------------------
// Установка типа сигнального процессора

   SetSpeedADSP_1251(&dev,0);

//------------------------------------------------
//Установка параметров ввода   
                       
   double chfr =  100.0;            //частота опроса каналов в кГц
   double kadr =  1.0;                 //время задержки между опросами каналов в мс

   WORD Chn[] = {0,1};                //инфо о последовательности
   WORD NChn  =    2;                //опроса каналов АЦП
   
   WORD fifo  = 1024;                //размер половины кольцевого буфера платы
   WORD pages = 64;                //размер кольцевого буфера в единицах IrqStep

   ADC_PAR InBuf;
   InBuf.size = sizeof(InBuf);        //вычислим размер записи

   //Заполним структуру с параметрами сбора данных
   status =   
     FillADCparameters_1251( &InBuf, &chfr, &kadr, 0, 0, 1, 256, NChn, Chn, fifo, fifo, pages);

   InBuf.AutoInit = 1;

//------------------------------------------------
//Выделим большой кольцевой буфер

   DWORD tm = 200000;
   status = RequestBuffer(&dev,&tm);           
   
//------------------------------------------------
//Настроим плату АЦП  на заданные параметры ввода данных.

    WORD  *data;
    DWORD *sync;               

    status = SetParameters(&dev,&InBuf,&tm,&data,&sync);

//------------------------------------------------
//Инициализация переменных перед началом сбора

    status = InitStartLDevice(&dev);

//------------------------------------------------
//Запуск сбора данных с платы в большой кольцевой буффер.

    printf("//n Press any key for start...");    getch();

    status=StartLDevice(&dev);
   
//------------------------------------------------
//Вывод информации о сборе

    //вычислим время, за которое половина буфера заполняется
    double time = (kadr / 1000.0 + double(NChn) / (chfr * 1000.0)) * fifo;
    printf("//n Time of the half buffer filling = %e.//n", time );

    unsigned i = 0;

    while ((kbhit() == 0))
    {
        printf("//r i//t %d//t Synhro//t %d//t %d", i++, *sync);
        Sleep(100);
    }
   
//------------------------------------------------
///Закроем драйвер
    status = CloseLDevice(&dev);

}

18.04.2001 15:46:13
#2

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

Re: Драйвер vxdapi - ввод данных для L1250.

если все одинкаово то после замены биоса
1250 на 1230 полный пример должен был заработать.
если нет - значит есть какието различия.
а так понимаете Вы все правильно.
если sync не меняется значит прерывания от платы не идут.

Максим
18.04.2001 16:19:02
#3

Гость

Re: Драйвер vxdapi - ввод данных для L1250.

Дело в том, что у меня нет L1250, поэтому не могли бы Вы прогнать мою программу на Вашей карте?
Извините, если это создает лишние проблемы, но у меня подозрения, что что-то не то в коде. Это, собственно, возвращает к проблеме "мануала" - по "хелпу" достаточно трудно разбираться.

Vlad
18.04.2001 19:20:28
#4

Гость

Re: Драйвер vxdapi - ввод данных для L1250.

А прерывание точно работает?
Если не точно, имеет смысл посмотреть в настройках BIOS, в каком режиме стоит IRQ10 или IRQ11 - PCIPnP или ISA? Надо, чтобы было в режиме ISA.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск

L-CARD в проектах