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


L-305, не работает вывод в режиме DMA

Вы не вошли.

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

Роман
26.04.2004 15:55:21
#1

Гость

L-305, не работает вывод в режиме DMA

Ситуация: Win 98,C++B3.0 плата L-305. Надо организовать вывод через DMA. Упорно не хочет выводить на ADC, в смысле на ADC - ноль,
. Вот кусок кода:

WORD *PLinear;
WORD *PPhysical;
DWORD WINAPI AAAA(LPVOID);
void __fastcall TForm1::Start1Click(TObject *Sender)
{
SetPriorityClass(GetCurrentProcess),IDLE_PRIORITY_CLASS);
    DWORD aaa;
    CreateThread(NULL,0,AAAA,NULL,0,&aaa);
}
DWORD WINAPI AAAA(LPVOID)
{
ALLOCATEBUFFER(SizeMyBuffer,&PLinear,&PPhysical);
if ( PLinear == NULL)
{
MessageBox(NULL,"Невозможно выделить память","Ошибка", MB_ICONEXCLAMATION |MB_TASKMODAL | MB_OK);
exit(0);
}
    for(int i=0;i<MyBuffer;i++)
        {
            PLinear[i]=(WORD)(i & 0x3FF);
        }
      int  Rate=10;
      int  Npoint=4096;
    DADMASTREAM(PPhysical, Npoint, Rate, 1); 
exit(0);
return(NULL);
}
PLinear не NULL.
Вопрос: где грабли?
Заранее спасибо.

26.04.2004 16:09:40
#2

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

Re: L-305, не работает вывод в режиме DMA

Попроще пример взять - например dma_test.dpr в котором заменить DMAONE на DADMASTERAM и еще при этом счетчик пдп попечатать DMA_COUNTER_OUT.

Роман
26.04.2004 17:27:58
#3

Гость

Re: L-305, не работает вывод в режиме DMA

К сожалению, это тоже не работает. Так или иначе PLinear создается и заполняется, а на выходе всё равно 0. LSetup тест делает, всё ок. Ещё раз повторю: не работает только DMA, скажем OUTDA всё прекрасно выводит.

Уважаемый Poul, если можно, пожалуйста подробнее объясните, что неправильно.
спасибо.

Роман
26.04.2004 18:23:53
#4

Гость

Re: L-305, не работает вывод в режиме DMA

и ещё ответьте пожалуйста на вопрос: LSetup->Test. DMA input на свободном конце при наводке от резистора что-там показывает, - можно ли сделать отсюда вывод, что ДМА включено и работает.
спасибо.

27.04.2004 09:24:02
#5

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

Re: L-305, не работает вывод в режиме DMA

Шум показывает. Если шум мкняется то дма работает. но 5 канал. для цапа нужон 6.Перемычки на плате проверьте.

Роман
27.04.2004 19:57:27
#6

Гость

Re: L-305, не работает вывод в режиме DMA

Poul, объясните пожалуйста: в приведенном коде для DADMASTREAM(PPhysical, Npoint, Rate, 0); счетчик DMA_COUNTER_OUT не изменяется, а для DMAONE, в этом же коде!!, счетчик DMA_COUNTER_IN  уменьшается - как и должно быть. Все джамперы проверил, 6 канал на запись, разрешен.
и как вообще можно протестировать 6 канал. ведь в LSetup есть тест только на DMA Input, то есть 5 канал.

28.04.2004 09:14:15
#7

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

Re: L-305, не работает вывод в режиме DMA

В досе можно в example.exe.
Еще можно глянуть как в биосе стоит DMA - Legasy ISA?
Глючная это вообще-то библиотека. Пользовать надо или Vxdapi или Lcomp - но там нельзя подгружать данные цапу и буфер всего 2к отсчетов.

Alexey
28.04.2004 14:24:50
#8

Гость

Re: L-305, не работает вывод в режиме DMA

У меня тоже грабли с вводом через DMA sad.
Не получается вводить данные по 5ому каналу с помощью DMAALL() функции. Пробовал в W2K/XP c помощью стандартного API (см. DDK). Значение счетчика менятся а данных нет, одни нули в буфер пишутся.

Роман
30.04.2004 08:18:10
#9

Гость

Re: L-305, не работает вывод в режиме DMA

Poul,объясните пожалуйста, откуда берется _IID_ILDEV.  Линкер не видит его (Unresolved external /'_IID_ILDEV/' referenced from ....)

Плата L-305, Драйвера поставил из LComp, ifc_ldev.h подключил. BCB3.0 Win98.

спасибо.

30.04.2004 09:33:34
#10

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

Re: L-305, не работает вывод в режиме DMA

lguids.cpp в проект включили ?

Роман
30.04.2004 11:17:34
#11

Гость

Re: L-305, не работает вывод в режиме DMA

включил, всё заработало. спасибо.

ещё вопрос: плата L-305
pI->LoadBios("lbios11")
GetLast Error() возвращает 0

sl.BoardType=1. вроде должна быть 9.

30.04.2004 12:14:15
#12

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

Re: L-305, не работает вывод в режиме DMA

А в списке устройств что ? И плата у Вас в компе одна?

Роман
30.04.2004 12:25:05
#13

Гость

Re: L-305, не работает вывод в режиме DMA

Плата одна, L-305.
В списке устройств тоже значится: LCard ADC/DAC Board->L305. конфликтов по ресурсам нет.

30.04.2004 13:01:54
#14

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

Re: L-305, не работает вывод в режиме DMA

О глюк по недосмотру!
В Inf файле ошибка - там ключ Type для плат 264 и 305 надо переправить с 1 на 8 и 9 соответственно.

Роман
30.04.2004 14:25:13
#15

Гость

Re: L-305, не работает вывод в режиме DMA

Poul, вышлите пожалуйста исправленную версию LComp или этот файл. плата L-305.
roman[@]hydro.appl.sci-nnov.ru
спасибо.

Роман
05.05.2004 09:33:45
#16

Гость

Re: L-305, не работает вывод в режиме DMA

поставил новые драйвера (от 30.04.04) теперь sl.BoardType для платы L-305 возвращеает 8, а не 1 как было на предыдущей версии. В lcardisa.inf для L-305:
[LCARD_305.AddReg]
HKR,"Parameters","Type",0x00010001,9
HKR,"Parameters","DSPType",0x00010001,21050

???