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


Программирование в Lcomp

Вы не вошли.

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

dimas
27.03.2005 20:51:58
#1

Гость

Программирование в Lcomp

Для ЦАП в lcomp есть свои FIFO, IrqStep. Как-то они пересекаются с FIFO, IrqStep АЦП?
FIFO, IrqStep устанавливаются в SetDAQparameters отдельно для АЦП и ЦАП?
необходима одновременная работа ЦАП и АЦП

28.03.2005 08:51:49
#2

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

Re: Программирование в Lcomp

Пример там есть L780.OSC. ВОзможности ЦАП сильно зависят от платы...
А так они независимые и устанавливаются отдельно... запускаются только вместе.

dimas
28.03.2005 21:49:22
#3

Гость

Re: Программирование в Lcomp

1.В примере L780.OSC, в test.cpp
третий параметр функции SetParametersStream
- для АЦП WORD *data;
- для ЦАП DWORD *data1.
Для ЦАП нужно именно DWORD для отсчета?
И почему, ведь номер ЦАП задается в DAC_PAR::DacNumber.

2. Возможен ли запуск
а) только АЦП?
б) только ЦАП, а спустя 0.5 сек АЦП?
Например так: работа ЦАП разрешена (DAC_PAR::DacEna=1), а работа АЦП запрещена (ADC_PAR::AdcEna=0). Делаем StartLDevice, позже разрешаем работу АЦП (AdcEns=1) и опять делаем StartLDevice.
Останавливаем все одновременно, выполняя StopLDevice.

Работаю с L780.

29.03.2005 11:30:59
#4

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

Re: Программирование в Lcomp

DWORD потому что в PM памяти процессора буфер расположен а она 24бит. Номер ЦАП задается в отсчете. Для одиночного вывода в DacNumber и для других плат еще..

ТОлько АЦП можно
ЦАП а потом АЦП просто нельзя, можно если АЦП  в какую синхронизацию вогнать и церез 0.5 сек выполнить условия этой синхронизации..

zardoz
29.03.2005 15:54:59
#5

Гость

Re: Программирование в Lcomp

Для раздельного запуска АЦП или ЦАП используйте команды биоса платы. Т.е. заполните структуры и настройте параметры, а потом давайте команду на старт/стоп для ЦАП/АЦП.

dimas
29.03.2005 19:07:13
#6

Гость

Re: Программирование в Lcomp

Понял: ЦАП управляется как в VXDAPI, DacNumber не используется при выводе потока.

А АЦП пусть запускается вместе с ЦАП, буду отбрасывать лишние данные (биос пока не хочу трогать).

3. А как одиночный вывод с ЦАП осуществить? Если я не ошибаюсь после остановки ЦАП на его выходе остается напряжение, равное последнему отсчету, а требуется ноль. Для первого канала ЦАП чему равно DacNumber?

4. Каждый раз перед StartLDevice необходимо запустить FillDAQparameters/RequestBufferStream/
SetParametersStream или достаточно одного запуска?

5. Moжно ставить IrqStep=1? Или какое минимальное значение?
(моей программе желательно сразу получать оцифрованный отсчет внешнего сигнала)

6. Должно быть IrqStep=FIFO? Если да, то зачем две переменных? Можно ли вообразить случай, когда потребуется делать их разными?

7. Каковы максимальные FIFO для АЦП и ЦАП? Для L780 и для любой LCard.

30.03.2005 08:38:23
#7

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

Re: Программирование в Lcomp

функция там есть IoAsync.
Ну если параметры сбора не менять то просто IniStart Start... Request лучше сделать один раз в начали и с запаосм...
IrqStep =1 по идее можно но лучше проверить... FIFO точно нельзя у него мимнимум 128 вроде...
Вообразить когда они разнвми нужны можно...
Максимумы определяются типом DSP...
Многое можно узнать в книжке про ДОС и низкоуорвневое описание..

AlexZ
30.03.2005 16:55:43
#8

Гость

Re: Программирование в Lcomp

Пара вопросов по L-780.

1. У меня StartLDevice возвращает L_UNSUPPORTED. Может ли это быть из-за того, что я ЦАП настроил и включил для буферизованного вывода (RequestBufferStream/SetParametersStream), а АЦП нет?
2. Можно ли получить исходники wdm'ного драйвера, а то по help'у много непонятного...

AlexZ
30.03.2005 17:10:54
#9

Гость

Re: Программирование в Lcomp

Еще вопросы:
3. Будет ли работать AutoInit=1 задаваемый в DAC_PARAM, а то а help'е написано "USHORT AutoInit - флаг указывающий на тип сбора данных 0 - однократный 1 - циклический; (пока не используется)", что явно относится не к ЦАПу. И если этот флажок указан, будет ли вывод (на ЦАП)крутиться пока я что-то не изменю (или не остановлю) и можно ли сделать так чтобы мне взводили Event когда буфер опустошится на IrqStep или сколько еще.
4. Тот же вопрос про АЦП -- можно ли не проверять постоянно (или через Sleep) указатель, а чтобы меня просто позвали (сработал Event). Будет ли после этого продолжен сбор данных?

31.03.2005 08:54:06
#10

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

Re: Программирование в Lcomp

Там есть исходники библиотеки и можно глянуть почему ошибка возвращается. Start не может возвращать L_UNSUPPORTED при нормальной работе и правильной инициализациии библиотеки...

А ЦАП всегда циклический.ОСтанов в нем задается служебным кодом. В книжке написано... Событий нет.
Событие есть только по окончании однократного заполнения буфера в РС с АЦП.

На 780 цап отрабатывает просто - если в буфер данные положены то при старте ацп они перенесутся в буфер платы для цап и оттуда будут циклически выводится. Естественно перенесется только столько сколько в буфер влазит. 780M может подгружать данные по прерываниям от платы

AlexZ
31.03.2005 09:38:24
#11

Гость

Re: Программирование в Lcomp

Посмотрел еще раз исходник библиотеки: Start принципиально не может вернуть ничего кроме L_SUCCESS и L_NOTSUPPORTED, а описанный в хелпе L_ERROR просто не может.
Т, что при правильно написанной программе все должно работать, я и так понимаю, и спрашиваю почему так не работает у вас, у авторов...

Еще раз просьба -- можно ли получить исходники драйвера, тогда и вопросов поменьше будет (я надеюсь)

отлчие 780М от 780 железное или там просто разные биосы?

Программирование, через вашу библиотеку, для Е440 и 780 отличается и если да, то сильно ли придется переделывать программу?

31.03.2005 09:47:21
#12

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

Re: Программирование в Lcomp

отличие железное...
библиотеки для Е440 и 780 разные но принципы похожие...
сырцы сейчас зашлю.

AlexZ
31.03.2005 17:09:11
#13

Гость

Re: Программирование в Lcomp

Что-то я запутался!
780/780М - у вас в продаже только одна 780'ая карта или просто 780 это старая модификация? Если да, то как определить какая у меня?

01.04.2005 08:42:02
#14

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

Re: Программирование в Lcomp

на 780м чип интерфейса PCI9030

AlexZ
01.04.2005 09:31:56
#15

Гость

Re: Программирование в Lcomp

1.Правильно ли я понимаю, что сейчас делается только плата 780М?
2. Правильно ли я понимаю, что 780М и ревизия С это одно и тоже?

01.04.2005 10:17:16
#16

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

Re: Программирование в Lcomp

1 наверное , я точно не знаю
2 угу

AlexZ
04.04.2005 15:20:59
#17

Гость

Re: Программирование в Lcomp

Еще пару вопросов, если позволите:
1. Что за отличие между 780 и 780М, мешающее по опорожнению буфера ЦАПа посылать прерывание -- нельзя вызвать прерывание или драйвер не в состоянии определить от кого было прерывание.
2. Смотрел исходники драйвера -- зачем там используется общение и через память и через порты, разве чего-то одного не достаточно?
3. Что за порт 0x4С, я в книжке (там где описана работа в ДОСе) такого не нашел, точнее 0x4C есть, но он явно занимается совсем не прерываниями, как в драйвере.

AlexZ
04.04.2005 15:22:39
#18

Гость

Re: Программирование в Lcomp

В предыдущем посте в пункте 1 читать "Что за отличие в железе между ..."

04.04.2005 17:23:55
#19

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

Re: Программирование в Lcomp

В разводке там флаг для дергания прерывания на PCI микросхему не выведен.Соответсвенно определить источник нельзя. 4С это из портов PCI микросхемы - разрешение/запрещение прерываний и определение источника прерываний.
Порты там для служебных регистров PLX память для общения с ADSP.

AlexZ
05.04.2005 21:55:20
#20

Гость

Re: Программирование в Lcomp

А какие-нибудь источники кроме ЦАПа и АЦП могут быть? Может ЦАП это когда не АЦП? Или так не пойдет?

06.04.2005 09:01:37
#21

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

Re: Программирование в Lcomp

А подумать... прерывание или есть или его нет...

AlexZ
15.04.2005 15:10:42
#22

Гость

Re: Программирование в Lcomp

Так, возможно я плохо сформулировал или что-то не понимаю...
Прерывание по опустошению очередного IrqStep'а из ЦАПа дает БИОС или ЦАП, каким-то образом, самостоятельно?

Если второе и такой возможности на старой ревизии нет, то тогда все ясно.

Если первое, то что мешает такое прерывание сгенерить.

Я понимал, что ситуауия как в первом случае -- и просто в драйвере нет возможности определить, что прерывание было послано по поводу ЦАПа.

Разве по набиранию буфера оцифрованных значений, прерывание посылает не БИОС.

15.04.2005 15:13:49
#23

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

Re: Программирование в Lcomp

Нет возможности определить в компе от какого источика пришло прерывание при их одновременной работе. А так сгенерить можно, можно даже от цифровых линий... просто этого в биосе нет.

AlexZ
15.04.2005 15:30:53
#24

Гость

Re: Программирование в Lcomp

Т.е. сейчас (для ревизии С) заведено два бита -- для АЦП и для ЦАПа, а раньше не было ни одного. От этого и проблема?

А если просто выставлять какц-нибудь ячейку памяти в соответсвующее значение? Это конечно изменение БИОСа, но это может помочь, или так тоже чем-то плохо?

18.04.2005 08:57:56
#25

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

Re: Программирование в Lcomp

Это уже к программисту биоса.