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


FIFO буфер L-783

Вы не вошли.

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

Игорь
30.06.2003 09:49:13
#1

Гость

FIFO буфер L-783

Можно ли в Си++ прочитать указатель, хранящийся в глобальной переменной L_IRQ_FIFO_ADRESS_PLX.
И как это сделать?

30.06.2003 10:55:21
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,493

Re: FIFO буфер L-783

Какая плата? Какую опер. систему используете?

Игорь
30.06.2003 11:15:55
#3

Гость

Re: FIFO буфер L-783

Плата L-783, OC - Win98.

30.06.2003 12:18:21
#4

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,493

Re: FIFO буфер L-783

Попробуйте использовать функцию Get_DM_word_PLX().

Игорь
30.06.2003 12:33:59
#5

Гость

Re: FIFO буфер L-783

А если попробовать в обработчике прерывания писать так (для DOS):

/*struct BOARD_INFO bi*/
DWORD (*BASE) = bi.HighMemorySpaceAddress;
DWORD *BASE_2, *BASE_4096;
BASE_2 = BASE + 2;
BASE_4096 = BASE + 4096;
(*BASE_2) = L_IRQ_FIFO_ADDRESS_PLX;
for (int i=0; i<HALF_BUFFER; i++){
  /*считывать &BASE_4096[i]*/
}
RESET_IRQ_PLX(&bi);

30.06.2003 18:07:20
#6

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,493

Re: FIFO буфер L-783

Значит всё-таки досовское приложение...
L_IRQ_FIFO_ADRESS_PLX это не глобальная переменная Вашего приложения. Это ячейка памяти данных в DSP, содержимое которой можно прочитать с помощью специальных функций, например, GET_DM_WORD_PLX().

Игорь
01.07.2003 08:29:32
#7

Гость

Re: FIFO буфер L-783

(Приложение все-таки планируется писать не DOS/'овское, просто пока я пытаюсь понять принципы работы с буфером АЦП)
Хорошо, а если я в обработчике прерывания напишу вот такую вещь:
Get_DM_array_PLX(@Board, L_IRQ_FIFO_ADDRESS_PLX, HALF_BUFFER,BUFFER, 0),
где
    Board: DEV_REG_UNI;
    HALF_BUFFER = 1024;
    BUFFER = pWORD;
то будет ли это работать.
P.S. Не подскажешь функции для Windows идентичные DOS/'овским: 1. INIT_INTERRUPT_PLX()
            2. ENABLE_IRQ_PLX()
            3. RESET_IRQ_PLX()
Заранее большое спасибо.

01.07.2003 12:29:47
#8

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,493

Re: FIFO буфер L-783

Для работы под Windows штатно поставляется библиотека, работа с которой несколько отличается от работы под DOS (читайте эл.хелм и см. исходники консольных примеров). Например, в этой библиотеке нет доступа к обработчику прерываний. Хотя сама библиотека работает с платой по прерываниям, но всё это совершенно скрыто от глаз пользователя. Он просто получает в буфере уже готовые данные с платы.

Игорь
01.07.2003 12:41:14
#9

Гость

Re: FIFO буфер L-783

Чесно говоря Вы поставили меня в тупик.
Хорошо. В таком случае, как я понимаю, мне нужно изначально (как нужно мне) установить параметры сбора данных с АЦП, а именно в структуре ADC_PAR значения полей должны выглядеть так:
...
FIFO = 1024 (т.к. я хочу использовать весь обьем = 2048)
IrqStep = 1024;
Pages = 2;
...
Так?
Если так, то остается один вопрос - в каком месте программы мне вызывать процедуру Get_DM_array_PLX(@Board, L_IRQ_FIFO_ADDRESS_PLX, HALF_BUFFER,BUFFER, 0)?

01.07.2003 13:03:16
#10

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,493

Re: FIFO буфер L-783

Не совсем понятно зачем Вам нужно знать содержимое ячейки L_IRQ_FIFO_ADDRESS_PLX?

Игорь
01.07.2003 13:11:42
#11

Гость

Re: FIFO буфер L-783

Цитирую:
L_IRQ_FIFO_ADDRESS_PLX
Если призошло прерывание в PC, то начиная с этого адреса можно считать L_IRQ_STEP_PLX отсчетов из кольцевого буфера АЦП.

И по поводу GET_DM_ARRAY_PLX:
LPVOID dev - структура описывающая выбранное устройство ( DEV_REG_UNI );
WORD Addr - адрес, с которого начинать;
DWORD count - размер массива  в словах;
WORD *Data - указатель на массив данных;
DWORD key - выбранный регион;

Вот я и пишу на место Addr - L_IRQ_FIFA_ADDRESS_PLX.

Если это не есть правильно, то подскажите какое обращение к буферу (в моем случае) будет верно.

01.07.2003 14:09:22
#12

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,493

Re: FIFO буфер L-783

Посмотрите исходники консольного примера из директории //Library//L7xx.tst//
Там реализован алгоритм сбора данных в файл. Пример имеет довольно подробные комментарии.