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

Тема: Как использовать DADMASTREAM?

Вы не вошли.

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

Дмитрий
09.09.2002 16:19:14
#1

Гость

Как использовать DADMASTREAM?

1. Какой указатель передается в качестве первого параметра функции DADMASTREAM - указатель на мои данные в программе или указатель на буфер ДМА для вывода? И каков общий алгоритм работы с этой функцией?

Я работаю с платой L-305 и пытаюсь вывести сигнал на ЦАП через ДМА. С функцией DASTREAM - все получается - но это синхронный вывод. С теми же параметрами пытаюсь использовать DADMASTREAM - сигнал не выводится. Далее попробовал создать буффер ДМА с помощью ALLOCATEBUFFER, скопировать данные в буфер и запустить DADMASTREAM с указателем на буфер - сигнала все равно нет.

2. Можно ли одновременно использовать DADMASTREAM для вывода и DMAALL для ввода? Как я понял функция DMA_ALL_DA позволяет одновременно производить чтение и запись по ДМА, однако она использует одну скорость для этих процессов, а мне нужны разные скорости ввода и вывода.

3. Как вообще организовать одновременный вывод и ввод по ДМА - нужно ли использовать 2 канала ДМА, нужно ли выделять два различных буфера для чтения и записи по ДМА? К сожалению документация по этому вопросу очень скудная.   

Влад
09.09.2002 16:49:28
#2

Гость

Re: Как использовать DADMASTREAM?

Вы работаете под DOS или Windows?

Дмитрий
09.09.2002 17:03:04
#3

Гость

Re: Как использовать DADMASTREAM?

Windows 98
Использую LCARD_32.DLL

Влад
10.09.2002 11:11:25
#4

Гость

Re: Как использовать DADMASTREAM?

К сожалению, наш программист, который может ответить на Ваш вопрос сейчас в отпуске. Он появится 16 сентября.

16.09.2002 08:41:45
#5

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

Re: Как использовать DADMASTREAM?

Скорость вывода выода и одновременнон ввода всегда будет одинаковой. Нужно использовать DMA_ALL_DA для одновременной работы ацп и цапа.
См пример DMAADDA.CPP.ALLOCATEBUFFER возвращает два адреса - по линейному Вы пишите данные, а физический передаете в функцию. Можно работаь как из одного региона памяти как в примере, так и выделит два разных.

Дмитрий
16.09.2002 12:09:26
#6

Гость

Re: Как использовать DADMASTREAM?

То есть использовать DADMASTREAM для вывода и DMAALL для ввода одновременно - нельзя?

Дмитрий
16.09.2002 13:13:29
#7

Гость

Re: Как использовать DADMASTREAM?

Сама по себе DADMASTREAM тоже не работает:

После ее вызова DMA_COUNTER_OUT все время возвращает значение = (Npoint-1), сигнал на ЦАП также не выводится.
Это происходит и в моем коде и в вашем примере "dma_test.exe".

В чем может быть причина?

16.09.2002 14:32:37
#8

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

Re: Как использовать DADMASTREAM?

А перемычка на плате как стоит?
В биосе компа 6 пдп - legasy ISA?

Дмитрий
17.09.2002 12:03:38
#9

Гость

Re: Как использовать DADMASTREAM?

Спасибо за совет - поставил перемычку 6-го ПДП на запись и все заработало.

Объясните пожалуйста какой канал ПДП используется в этом случае для чтения 5 или 6?

Если отключить 5 канал ПДП - будет ли 6 канал использоваться для чтения и записи одновременно?

Если отключить 6 канал ПДП - можно ли использовать 5 канал для чтения и записи (на плате L-305 отсутствует перемычка запись/чтение для 5 канала)?

Влад
17.09.2002 12:15:58
#10

Гость

Re: Как использовать DADMASTREAM?

5-ый канал работает только на чтение, а 6-ой в зависимости от перемычки - на чтение или запись.

Контакты

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

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

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

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