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


Одновременный ввод и вывод в L1250/L305 и L78?

Вы не вошли.

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

Вадим Алексеенко
12.04.2005 14:24:44
#1

Гость

Одновременный ввод и вывод в L1250/L305 и L78?

Мне требуется  (под DOS) постоянно вводить данные  по одному каналу АЦП, выводить по ЦАПу, и периодически (редко) опрашивать ещё один канал. Частота 5 кГц.

Платы пока 1250 и 305.

В режиме DMA_ALL_DA всё работает, но с глюками (ЦАП при переходе через границу буфера выдаёт черте-что - чего нет в буфере вывода). При этом программа зависает периодически, причём чем быстрее машина- тем чаще, ЕМНИП.

Может, есть какая-то возможность сделать спец- BIOS, в котором совместить ввод и вывод?
Если просто вписать STREAM_OUTDA в обработчик прерывания, это работает, но на низких частотах только.

То есть хочется, чтобы обработчик прерывания выглядел так:

void interrupt Interrupt_Handler(PARM)
    {
    if (Interrupts_Enabled)
        {
            {
            InputBuffer[BufferPtr]=READ_DATA();
            QUICK_OUT_DA(OutputBuffer[BufferPtr]);
            BufferPtr++;
            if (BufferPtr>BufferSize) BufferPtr=0;
            ADC_counter++;
            };
        };
    RESET_IRQ();
    };

Может, кто-то уже сделал такое, и может поделиться?