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


Генерирование прерывания в PC

Вы не вошли.

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

wsprintfW
28.02.2007 01:43:47
#1

Гость

Генерирование прерывания в PC

хочу ловить прерывание в PC
пишу вот такой код со стороны дсп:
------------
Cycle:
    RESET FL2; NOP; NOP; SET FL2;
    JUMP Cycle;
------------
со стороны PC:
------------
HANDLE hEventData =0;
hEventData = CreateEvent(0,FALSE,FALSE,NULL);
res = pI->SetLDeviceEvent(hEventData);
WaitForSingleObject(hEventData,INFINITE);
------------
собственно выполнение кода заканчивается на последней инструкции, т.е. прерывание не ловится.
В биосе поставил PNP OS NO и жёстко установил Lплате IRQ10. Подскажите что не так? Плата L761.

wsprintfW
28.02.2007 02:06:14
#2

Гость

Re: Генерирование прерывания в PC

а, ошибся, надо было просто сделать как в примере, т.е. со стороны PC:
        int NCh=4;
        ULONG tm = 512000;  // выделили память в отстетах АЦП,    для 791 512Кбайт выделиться всегда, отсчеты там 32 бит
        pI->RequestBufferStream(&tm,L_STREAM_ADC);

        ADC_PAR adcPar;

        ULONG *sync;

        adcPar.t2.s_Type = L_ADC_PARAM;
        adcPar.t2.AutoInit = 0;
        adcPar.t2.dRate = 100.0;
        adcPar.t2.dKadr = 0.0;
        adcPar.t2.SynchroType = 0;
        adcPar.t2.SynchroSrc = 0;
        adcPar.t2.NCh = NCh;
        adcPar.t2.Chn[0] = 0x0;
        adcPar.t2.Chn[1] = 0x1;
        adcPar.t2.Chn[2] = 0x2;
        adcPar.t2.Chn[3] = 0x3;
        adcPar.t2.FIFO = 128;
        adcPar.t2.IrqStep = 1024;
        adcPar.t2.Pages = 128;
        adcPar.t2.IrqEna = 0x0003;
        adcPar.t2.AdcEna = 1;

        res = pI->FillDAQparameters(&adcPar.t2);
        res = pI->SetParametersStream(&adcPar.t2, &tm, (void **)&data, (void **)&sync,L_STREAM_ADC);


        HANDLE hEventData =0;
        hEventData = CreateEvent(0,FALSE,FALSE,NULL);
        res = pI->SetLDeviceEvent(hEventData);
        res = pI->StartLDevice();
        WaitForSingleObject(hEventData,INFINITE);

и всё заработало
только вот почему pI->StartLDevice(); секунд на 15 намертво подвешивает систему?

01.03.2007 10:34:01
#3

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

Re: Генерирование прерывания в PC

там команды посылаются, если это не поддерживается в вашем биосе то по таймаутам выходить будет...