Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
|
||||
|
|
Опрос цифровых и аналог. каналов в разных потокахЗдравствуйте.
|
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахне будет |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахЕще раз здравствуйте.
после этого опрашиваю так же цифровые каналы:
и сразу после этого ASYNC_PAR pp;
при частоте опроса аналоговых каналов = 1кГц вроди бы все нормально, но если ставлю например 160кГц, то программа зависает при опросе цифровых каналов. Если например закомментировать строчки pI->IoAsync(&pp);
все тоже самое с L783M работает нормально. так задаю параметры АЦП: ULONG tm = 32;
adcPar.t1.s_Type = L_ADC_PARAM;
pI->FillDAQparameters(&adcPar.t1);
pI->EnableCorrection(1); |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахЧто значит зависает? перестают идти данные с АЦП ?(типа счетчик заполнения встает?) |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахпросто замирает при вызове функции pI->IoAsync(&pp); |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахпока АЦП из компьютера не выдернешь, все висит |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахну как бы... в программе надо организовать таймауты посмотреть где повисло.... |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахВзял пример из
На форму добавил таймер и код: procedure TForm1.Timer2Timer(Sender: TObject);
pp.s_Type := L_ASYNC_TTL_INP;
Label1.Caption := IntToStr(GetTickCount())+/': /' + IntToStr(pp.Data[0]);
программа зависает примерно через 30сек
ap.t1.FIFO := 32;
то зависает через 5-10 сек. |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокаха еще... тоже самое под WinXP работает нормально, глюк только в Win7 |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахну еще в проекте примера изменил частоту опроса:
|
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахс такими размерами fifo и irqstep работать не должно в принципе. 1024 минимум наверное... для usb 4096 и более |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахну и страничек pages больше нужно... |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахтак:
тоже зависает при:
Вы скажите какие параметры выставить чтобы просто не зависало.
ap.t1.FIFO := 4096;
ap.t1.dRate := 160.0; |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокаха во втором случае не зависает? если да, то в первом поднять до 8192 или 16384... |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахвот так:
проработало дольше(2-3 минуты) и потом зависло |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахвот так проработало еще дольше(больше 10 минут):
но в итоге все равно зависло |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахтак что всеж таки зависает? какой тред? сбор повиснуть не может тк он счетчик отслеживает просто. те в примере он можетолько в бесконечный цикл войти... |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахВы можете у себя открыть проект
поставить частоту опроса
кинуть на форму TTimer, TTimer.Interval=10 и на OnTimer прописать код:
pp.s_Type := L_ASYNC_TTL_INP;
Label1.Caption := IntToStr(trunc(GetTickCount()/1000.0))+/': /' + IntToStr(pp.Data[0]);
и сразу увидите где и что зависает.
|
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахдаже так зависает:
причем может и 10 минут отработать нормально, но потом мышкой начинаешь возить и через минуту зависает.
|
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахУ меня такой код (этот как в примере 1000)
begin
pp.s_Type := L_ASYNC_TTL_INP;
Memo1.Lines.Add(/'/');
end; (этот 10)
pp.s_Type := L_ASYNC_TTL_OUT;
pp.s_Type := L_ASYNC_TTL_INP;
// Memo1.Lines.Add(/'/');
не зависает. те в Memol печатает живой счетчик и светодиодом моргает модуль. Windows 7 32bit. Turbo Delphi 2006. |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахВы можете проект куда-нибудь выложить?
|
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахну вот от штатного примера только такое отличие. второй таймер как Вы хотели и частота сбора 400кГц. Но следует заметиьт что тут вообще потоков нет. АЦП по факту собирает в фоне в драйвере и тут только индикация по таймеру. ну и асинхронный вызов тоже по таймеру... |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахну я не знаю... я пробовал менять АЦП, менял шнуры подключения к компьютеру.
ap.t1.dRate := 400.0;
На 2-х компьютерах с XP все работает нормально.
При любых зависаниях лампочка на АЦП продолжает мигать. При этом завершение процесса программы ни чего не дает, помогает только когда выдергиваешь шнур АЦП из компьютера. Подскажите хоть какое-нибудь решение. |
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахЛадно...
pI->IoAsync(&pp); но частота не более 1 кГц, совсем не хорошо...
|
|||
|
||||
|
|
Re: Опрос цифровых и аналог. каналов в разных потокахПример зависает с тамймерами как я привел? Каой даты биос грузится в плату и какой серийный номер платы? |
|||
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4
Многоканальный телефон:+7 (495) 785-95-25
Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск