Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
генератор синуса на L502Доброго дня! где можно найти пример, как генерить "живой" синусоидальный сигнал спасибо! |
|||
|
||||
|
Re: генератор синуса на L502Добрый день. Для "живого" синуса (если сам изменяющийся синус изменяется не по периодическому закону) нужно использовать потоковый вывод на ЦАП, когда живой синус рассчитывается на лету и все время подгружаются новые точки. Готового примера на это нет, но в этот режим описан в документации программиста, а сама загрузка во многом похожа на циклический режим (который показан в примере http://www.lcard.ru/download/examples/l … le_out.zip, за исключением другой функции запуска и необходимости загрузки не одного периода, а постоянной загрузки сигнала. |
|||
|
||||
|
Re: генератор синуса на L502спасибо, но ссылка на архив не открывается, открывается окно со списком проектов |
|||
|
||||
|
Re: генератор синуса на L502Алексей1000 пишет:
Попробуйте снова, администратор подправил эту ссылку |
|||
|
||||
|
Re: генератор синуса на L502спасибо, файл скачался! |
|||
|
||||
|
Re: генератор синуса на L502Принципиально все работает. Я в таймере вызываю функцию f_load_cycle_signal с новыми параметрами синусоиды. Мне не ясно почему более 10 раз в сек. нельзя обновлять сигнал, иначе программа сразу виснет и сигналы пропадают. Это какие-то настройки драйвера надо менять? |
|||
|
||||
|
Re: генератор синуса на L502еще забыл спросить - для чего в проекте константа OUT_SIGNAL_SIZE, она нигде не используется? |
|||
|
||||
|
Re: генератор синуса на L502Да, OUT_SIGNAL_SIZE нигде не используется, его можно удалить, остался от старой версии примера (когда размер циклического сигнала брался не из таблицы, а был один, в потоковом он бы в любом случае не использовался). Вообще по умолчанию модуль выдает сигнал с частотй 1 МГц на каждый канал, если не была установлена другая частота вывода, т.е. один млн. точек в секунду. Соответственно вы подкачиваете сперва какое-то кол-во точек до старта (чтобы не произошло опустошение буфера из-за задержек программы и на передачу). После этого делаете старт, после чего Вы подкачиваете данные с такой скоростью выдачи, т.е. те же 1 млн. точек в секунду. Если чаще, то точки будут передаваться в модуль с большей скоростью, чем он выдавать и будет заполняться буфер в модуля, в результате если Send не будет место для передачи указанного числа отчетов она будет ожидать, либо пока не истечет таймаут, либо не появится место в буфере за счет вывода новых точек. Если с этим не связано, то нужно смотреть, где именно "подвисает" программа |
|||
|
||||
|
Re: генератор синуса на L502Выставил обновление сигнала на 20 раз/с, отловил ошибку L502_ERR_IOCTL_FAILD -132 после которой сигналы пропадают. В хелпе написано "управляющий запрос к драйверу совершен с ошибкой". А нельзя поподробнее про эту ошибку? |
|||
|
||||
|
Re: генератор синуса на L502Забыл сказать, что после этой ошибки цапы повторно уже не запускаются. Только после сброса питания компа запускаются. |
|||
|
||||
|
Re: генератор синуса на L502Еще определил что ошибку -132 выдает функция L502_OutCycleLoadStart. |
|||
|
||||
|
Re: генератор синуса на L502Если вы работаете в потоковом режиме, то L502_OutCycleLoadStart вызывать не нужно, она относится только к циклическому выводу... Последовательность вызовов при потоковом выводе описана в разделе 3.2.2 руководства программиста (http://www.lcard.ru/download/x502api.pdf) и более подробное описание в разделе 3.7.2 |
Страницы 1