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


Вопрос по биос L-783

Вы не вошли.

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

Nfnmzyf Hjvfyjdcrfz
26.01.2006 14:19:01
#1

Гость

Вопрос по биос L-783

Возникла необходимость одновременного с запуском АЦП вывода на цифровой порт. Начало выходного импульса должно совпадать с моментом запуска АЦП, а окончание хотелось расчитать по количеству выполненных АЦП преобразований и ADC_Rate. По тексту файла L783.dsp такой вопрос: почему  подмена обработчика прерываний  АЦП (метка SetHighFreqLoop)выполняется при разрешенном прерывании IRQE?

Victoria
27.01.2006 09:04:01
#2

Гость

Re: Вопрос по биос L-783

Действительно.
Пока Сергея Тихомирова дождетесь, предположу - процедура инициализации и одна команда записи кода, поэтому ничего и не боятся.
Встречный вопрос - к чему привязано начало выходного импульса, не очень понятно.. Если к  StartLDevice (Прим: это в vxdapi, в lcomp - что-то похожее должно быть), то зачем lbios вообще смотреть?

27.01.2006 13:54:17
#3

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

Re: Вопрос по биос L-783

1. Я не нашел места в штатном LBIOS для платы L-783, где выполнялась бы подмена обработчика прерываний АЦП при разрешенном прерывании IRQE. Функция SetHighFreqLoop вызывается только в обработчике командного прерывания, в котором все прерывания запрещены.
2. А в принципе чему может противоречить возможность подмены обработчика прерываний АЦП при разрешенном прерывании IRQE? Вроде бы никаких ограничений на такую операцию нет.

Nfnmzyf Hjvfyjdcrfz
30.01.2006 08:59:18
#4

Гость

Re: Вопрос по биос L-783

Спасибо, с обработчиком прерываний понятно, не учла, что до выхода из обработчика командного прерывания другие прерывания запрещены.
Вообще, вопрос возник из-за того, что изначально была добавлен в биос вывод на ТТЛ-порт вначале обработки команды Enable_ADC и снятие импульса через 10 циклов АЦП. По осциллографу посмотрели, что длительность полученного импульса не всегда стабильна. Когда начало импульса переставила в самый конец обработки прерывания, длительность вроде бы  всегда одинакова. Интересно стало, почему (никакие параметры АЦП не менялись)

30.01.2006 10:34:43
#5

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

Re: Вопрос по биос L-783

Всё зависит от:
1. какой алгоритм работы с ТТЛ линиями был выбран
2. есть ли обращения к DSP по IDMA каналу
3. на какой частоте работает АЦП
4. что было добавлено в обработчик IrqE_Handler.

Nfnmzyf Hjvfyjdcrfz
30.01.2006 11:32:25
#6

Гость

Re: Вопрос по биос L-783

1.Добавлено AR=0xFFFF ;IO(0)=AR при запуске АЦП и
AR=10;
AR=AR-AF;
IF NE JUMP NNN
AR=0x0;
IO(0)=AR
NNN:...
в цикле HighFreqLoop и LowFreqLoop после AF=AF+1
2. Данные Ацп опрашиваются при помощи Get_ADC_Data_PLX,
3.Частоту пробовали 0,4 МГц, либо 1.6 МГц, эффект одинаковый
4.В обработчик IRQ_E ничего не добавлялось

30.01.2006 18:38:41
#7

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

Re: Вопрос по биос L-783

По-хорошему начало импульса следует формировать в ф. Restart_ADC непосредственно перед запуском АЦП:

Restart_ADC:
...
...
...
    AR=DM(ADC_Enable);
    AR= PASS AR;
    IF EQ JUMP EndOfCommand;

{ здесь код с формированием Вашего импульса }

    AR = 0x7F1F;                    DM(Sport1_Ctrl_Reg) = AR;

    JUMP EndOfCommand;

Nfnmzyf Hjvfyjdcrfz
31.01.2006 08:10:30
#8

Гость

Re: Вопрос по биос L-783

Спасибо за помощь! Так и сделаю.