Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
L502. Как отловить момент окончания вывода ЦАП?Как программно отловить момент окончания вывода ЦАП в синхронном режиме в L502? Какие еще могут быть варианты? |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Версия FPGA в модуле обновляется - вместе с lpcie_sdk идет утилита обновления (<путь установки>/tools/lxfw-update и там описано в readme.txt). Если стоит последняя версия lpcie_sdk, то в ней и последняя прошивка. Если нужно гарантировать, что вывод закончился, то X502_OutGetStatusFlags лучше, т.к. привязано к моменту вывода, в то время как X502_GetSendReadyCount() - возвращает состояние буфера (т.е. еще какое-то время с момента, когда данные считаются из буфера до реального вывода, хотя это фиксированное небольшое время, если сделать еще задержку, то тоже можно использовать). А для чего нужно отловить этот момент? |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Алексей L Card пишет:
1. Запустить обработку данных, принятых другим устройством; |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Версию обновил. Стала 0.7. m_errorCode = X502_Send(m_lcardHandle, commonBuffer, size, 100); m_errorCode = X502_StreamsStart(m_lcardHandle); m_errorCode = X502_CheckFeature (m_lcardHandle, X502_FEATURE_OUT_STATUS_FLAGS); в этом месте m_errorCode содержит -110 (Неверно задан режим работы модуля X502), но данные выводятся нормально. Что бы это значило? |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Попробуйте обновить sdk с сайта (http://www.lcard.ru/download/lpcie_setup.exe), похоже действительно была проблема в последней версии |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Спасибо, с версией 0.8 полегчало, но после того как DLL-ки руками обновил - установщик драйвера сказал что обновление не требуется и ничего делать не стал. (это нормально?) |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Драйвер не обновлялся, только библиотеки, так что нормально. |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Все таки флаг X502_OUT_STATUS_FLAG_BUF_IS_EMPTY не означает, что ЦАП отработал и данные покинули карту. Иначе следующий код должен дождаться конца вывода: uint32_t status = 0; А на деле ожидания не происходит. Данные выводятся одновременно с продолжением программы. Т.е. этот флаг не отражает окончания вывода данных. Тогда возвращаюсь к началу темы: Как отловить в программе момент окончания вывода ЦАП ? |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?А в while() вроде должно быть == 0, Вы же должны выйти как раз, когда он будет установлен. |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Алексей L Card пишет:
Виноват, исправился. Но и в варианте: Тоже нет ожидания окончания вывода. Флаг срабатывает когда некий буфер становится пустым, а ЦАП продолжает свою работу. Вообще интересно, если синхронный вывод еще не закончился, а программа не зная этого выдает команду X502_StreamsStop, как поступит плата? На осциллографе вижу, что вывод продолжается... но нормально-ли это и всегда-ли так будет? А в асинхронный режим переключиться удастся, пока ЦАП еще работает? Я к чему клоню - если нет готового флага, то попробовать его сделать, пусть и коряво: В конце синхронного вывода сформировать на одном из выходов 1 и завести ее на ввод. А затем считать в асинхронном режиме. Но лучше, чтобы был предусмотрен флаг окончания вывода. |
|||
|
||||
|
Re: L502. Как отловить момент окончания вывода ЦАП?Ну не зная как именно Вы выводе, тут сложно сказать. Если речь идет о потоковом режиме и Вы начинаете подкачивать данные уже после запуска синхронного ввода-вывода (без Preload и т.п.), то до того, как данные начнут выводится этот флаг тоже будет взведен. Евгений64 пишет:
Вообще X502_StreamsStop() должен остановить вывод к моменту как команда дойдет до модуля. Евгений64 пишет:
Асинхронный ввод (вы видимо про него говорили?) может работать на фоне синхронного, поэтому в принципе можно использовать ту же цифровую линию для индикации нужного момента... |
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск