|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
E502 внешняя синхронизацмя
День добрый Понадобилось снимать данные АЦП с внешней синхронизацией X502_SYNC_DI_SYN2_RISE = 6, < По фронту сигнала DI_SYN2 */ // Устанавливаем частоту синхронного сбора для цифровых
err = X502_SetDinFreq(workX502.hndX502, &x502DinFreq);
// пропускаем каждый 2 такт
err = X502_SetAdcFreqDivider(workX502.hndX502, 2);
// Разрешение синхронных потоков на ввод/вывод.
err = X502_StreamsEnable(workX502.hndX502, X502_STREAM_ADC);
// Записываем настройки в модуль
err = X502_Configure(workX502.hndX502, 0);
//Затем стартуем внешнее устройство и тут же запускаем сбор данных
err = workX502.SetAsyncDigOut(512, _msg);
err = X502_StreamsStart(workX502.hndX502);
Внешнее устройство после запуска ждет секунду и выдает 20 импульсов Но с АЦП с буфер попадает только 9 (а при делителе X502_SetAdcFreqDivider 1) 19 Куда 1 отчет пропадает?
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,293
|
Re: E502 внешняя синхронизацмя
Добрый день. А какие версии прошивки ПЛИС, прошивки ARM (можно посмотреть в LQMeasStudio) и SDK у Вас?
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:Добрый день. А какие версии прошивки ПЛИС, прошивки ARM (можно посмотреть в LQMeasStudio) и SDK у Вас?
Прошивка, как вы в свое время рекомендовали 0.13 Как, кстати узнавать, что необходимо переписать? SDK гляну. Да, Алексей, если я запустил синхронный сбор с АЦП, то асинхронно вывести на цифровые выходы уже не могу? Ошибку выдает.
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,293
|
Re: E502 внешняя синхронизацмя
я правильно понимаю, что эта ошибка происходит не просто при запуске синхронного сбора с АЦП, а при запуске синхронного сбора от внешней частоты, которая как я понимаю у Вас не постоянно, а выдается несколько импульсов? Проблема может быть в том, что используется одна частота для ввода и вывода, а асинхронный вывод эмулируется через синхронный, поэтому при запуске сбора от внешней частоты и ее отсутствии вывод сделать действительно не получится... Если нужен вывод на фоне ввода, то наверное только если использовать постоянную частоту и сбор выполнять с АЦП и цифровых входов и уже синхронизацию делать программно селекцией данных по нахождению нужного фронта, если частоты позволяют... По поводу 19 отсчетов несколько странно, можете выложить все настройки модуля (кол-во каналов АЦП и т.п.)
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:Добрый день. А какие версии прошивки ПЛИС, прошивки ARM (можно посмотреть в LQMeasStudio) и SDK у Вас?
Не понял, где там в LQMeasStudio смотреть. Включаю галку Панели устройств, но в программе ничего нового не проявляется Пункты Конфигурация ... Изменить настройки ... Обновить прошивку .... Недоступны Но устройство видит E502-X-U-D 2T253133 , к сожалению из грида про правой кнопке не копирует ОС Вин10/32
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Итого: SDK 1.1.12 - из информации установщика Эти данные из вашей тестовой программы взял: Прошивка ПЛИС 0.13 Прошивка ПЛДА 0 Прошивка АРМ 1.0.11.0
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
ставлю 10 лог каналов,X502_SYNC_DI_SYN2_FALL =7 По спаду сигнала DI_SYN2 // 10 каналов, внешняя синхронизация по спаду err = workX502.SetupParams(10, 7, 7); // Установка значения внешней опорной частоты синхронизации X502_SetExtRefFreqValue(workX502.hndX502, 180000); // Устанавливаем частоту синхронного сбора для АЦП 1МГц err = X502_SetAdcFreq(workX502.hndX502, &x502AdcFreq, &x502AdcFreqLch) // Устанавливаем частоту синхронного сбора для цифровых x502DinFreq = 2000 err = X502_SetDinFreq(workX502.hndX502, &x502DinFreq); // пропускаем каждый 2 такт err = X502_SetAdcFreqDivider(workX502.hndX502, 2); // Разрешение синхронных потоков на ввод/вывод. берем синхронно только с АЦП err = X502_StreamsEnable(workX502.hndX502, X502_STREAM_ADC); // Записываем настройки в модуль err = X502_Configure(workX502.hndX502, 0); //запускаем внешнее устройство (выставляем 1 на определенном цифровом выходе) err = X502_AsyncOutDig(hndX502, _AsyncDigOut, mask); //устройство принимает сигнал и выжидает 1 сек для выдачи пачки импульсов длительность импульса в пакете из 20 - 3 мкс (частота около 180 кГц) // запустим поток сбора err = X502_StreamsStart(workX502.hndX502); // Поспим 3 сек Sleep(3000); // заберем, что пришло rcvSizeRealStep = X502_Recv(workX502.hndX502, rcv_buf, 200, 200); rcvSizeRealStep ... 9 вместо 10 при err = X502_SetAdcFreqDivider(workX502.hndX502, 1); без пропуска rcvSizeRealStep ... 19 вместо 20
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
err = workX502.SetupParams(10, 7, 7); - это собственно // устанавливаем кол-во логических каналов, lch_cnt=10
err = X502_SetLChannelCount(workX502.hndX502, lch_cnt);
_msg = X502_GetErrorString(err);
// настраиваем лог каналы
for (int i = 0; i < lch_cnt; i++) {
err = X502_SetLChannel (workX502.hndX502, i, i, X502_LCH_MODE_COMM, X502_ADC_RANGE_10, 1);
_msg = X502_GetErrorString(err);
}
// режим синхронизации
err = X502_SetSyncMode(workX502.hndX502, X502_SYNC_DI_SYN2_FALL);
_msg = X502_GetErrorString(err);
// условие запуска синхронного ввода/вывода данных.
err = X502_SetSyncStartMode(workX502.hndX502, X502_SYNC_DI_SYN2_FALL);
_msg = X502_GetErrorString(err);
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Данные по каналам записанные в файл: после закрытия потока синхронного сбора данных с АЦП // сброс сигнала старта
err = workX502.SetAsyncDigOut(0, _msg);
_msg = X502_GetErrorString(err);
AnsiString str = "";
for (int i = 0; i < rcvSizeRealStep; i++) {
str += "adcData: " + IntToStr(i) + " Value: " + FloatToStrF(adcData[i], ffFixed, 2, 4) + "\n";
}
TLog::SaveStrTxtFile("ButtonTstClick.txt", str);
На выходе при первом запуске функции имеем: adcData: 0 Value: -0,0020 adcData: 1 Value: 0,0024 adcData: 2 Value: -0,0130 adcData: 3 Value: 0,0020 adcData: 4 Value: 1,1000 adcData: 5 Value: 0,0024 adcData: 6 Value: -0,0110 adcData: 7 Value: 0,0032 adcData: 8 Value: -0,2500 adcData: 9 Value: 0,0032 adcData: 10 Value: -0,0130 adcData: 11 Value: 0,0020 adcData: 12 Value: 0,0024 adcData: 13 Value: 0,0016 adcData: 14 Value: 1,1000 adcData: 15 Value: 0,0028 adcData: 16 Value: 0,0024 adcData: 17 Value: 0,0024 adcData: 18 Value: -0,0440
При втором и последующем: adcData: 0 Value: -0,0028 adcData: 1 Value: 0,0016 adcData: 2 Value: -0,0140 adcData: 3 Value: 0,0020 adcData: 4 Value: 1,1000 adcData: 5 Value: 0,0020 adcData: 6 Value: -0,0110 adcData: 7 Value: 0,0032 adcData: 8 Value: -0,2300 adcData: 9 Value: 0,0024 adcData: 10 Value: -0,0130 adcData: 11 Value: 0,0020 adcData: 12 Value: 0,0020 adcData: 13 Value: 0,0020 adcData: 14 Value: 1,1000 adcData: 15 Value: 0,0016 adcData: 16 Value: 0,0028 adcData: 17 Value: 0,0032 adcData: 18 Value: -0,0700
Физ канале 4 у меня висит постоянка 1,1 и это есть Но на физ канале 0 висит 0.5 В а на физ канале 2 1,8 В Но их нет. В чем загадка?
|
|
- Инженер-электронщик
- Откуда: "Л Кард"
- Здесь с 21.04.2014
- Сообщений: 4,597
|
Re: E502 внешняя синхронизацмя
stix_s пишет:Понадобилось снимать данные АЦП с внешней синхронизацией ....Куда 1 отчет пропадает?
При поданных N импульсах внешней первичной синхронизации преобразования, действительно, будете получать N-1 отсчётов данных, из-за того, что последний отсчёт остаётся в конвейере в тракте передачи данных от АЦП (в логике CPLD-FPGA). Логика опустошения конвейера (в ситуации асинхронного прихода внешней синхронизации) не очевидна, поэтому не была реализована. Действительно, данная особенность не была описана в руководстве пользователя. - Добавим.
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:я правильно понимаю, что эта ошибка происходит не просто при запуске синхронного сбора с АЦП, а при запуске синхронного сбора от внешней частоты, которая как я понимаю у Вас не постоянно,
Ошибку получаю, если уже запускаю синхронный сбор с АЦП и пытаюсь асинхронно выставить выходы типа: // запустим поток сбора err = X502_StreamsStart(workX502.hndX502); // выставим 1 на DO10 err = workX502.SetAsyncDigOut(512, _msg);
ошибка -1004 { "Ошибка Cortex-M4: Обращение к регистру ПЛИС вернуло ответ NACK" }
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Гарманов Александр пишет:stix_s пишет:Понадобилось снимать данные АЦП с внешней синхронизацией ....Куда 1 отчет пропадает?
При поданных N импульсах внешней первичной синхронизации преобразования, действительно, будете получать N-1 отсчётов данных, из-за того, что последний отсчёт остаётся в конвейере в тракте передачи данных от АЦП (в логике CPLD-FPGA). Логика опустошения конвейера (в ситуации асинхронного прихода внешней синхронизации) не очевидна, поэтому не была реализована. Действительно, данная особенность не была описана в руководстве пользователя. - Добавим.
То есть, что бы мне получить 20 отчетов - надо выдать 21 импульс? А как потом сбросить ненужный отчет в конвейере? При следующей пачке импульсов? Кстати, при первом запуске выдает только 18 отчетов, а при все последующих 19 при 20 импульсах. Это я уже сообщение не смог отредактировать первый запуск adcData: 0 Value: -0,0032 adcData: 1 Value: 0,0024 adcData: 2 Value: -0,0130 adcData: 3 Value: 0,0024 adcData: 4 Value: 1,1000 adcData: 5 Value: 0,0028 adcData: 6 Value: -0,0080 adcData: 7 Value: 0,0028 adcData: 8 Value: -0,1900 adcData: 9 Value: 0,0032 adcData: 10 Value: -0,0190 adcData: 11 Value: 0,0024 adcData: 12 Value: 0,0016 adcData: 13 Value: 0,0020 adcData: 14 Value: 1,1000 adcData: 15 Value: 0,0020 adcData: 16 Value: 0,0024 adcData: 17 Value: 0,0020
и далее adcData: 0 Value: -0,0028 adcData: 1 Value: 0,0016 adcData: 2 Value: -0,0140 adcData: 3 Value: 0,0020 adcData: 4 Value: 1,1000 adcData: 5 Value: 0,0020 adcData: 6 Value: -0,0110 adcData: 7 Value: 0,0032 adcData: 8 Value: -0,2300 adcData: 9 Value: 0,0024 adcData: 10 Value: -0,0130 adcData: 11 Value: 0,0020 adcData: 12 Value: 0,0020 adcData: 13 Value: 0,0020 adcData: 14 Value: 1,1000 adcData: 15 Value: 0,0016 adcData: 16 Value: 0,0028 adcData: 17 Value: 0,0032 adcData: 18 Value: -0,0700
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,293
|
Re: E502 внешняя синхронизацмя
В каком смысле "первый" запуск? первый после подачи питания на модуль, первый при запуске программы? Чем первый отличается от не первого?
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,293
|
Re: E502 внешняя синхронизацмя
По поводу же значений с каналов, то сперва нужно проверить на штатном софте, соответствуют ли сигналы ожидаемым, и если нет, то проблема в первую очередь проверить соответствие подключения настройкам
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:В каком смысле "первый" запуск? первый после подачи питания на модуль, первый при запуске программы? Чем первый отличается от не первого?
первый клик на кнопке при запуске программы до ее, программы перезапуска. А остальные - кнопку просто повторно кликаю там одна тестовая функция в обработчике
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:По поводу же значений с каналов, то сперва нужно проверить на штатном софте, соответствуют ли сигналы ожидаемым, и если нет, то проблема в первую очередь проверить соответствие подключения настройкам
Когда собираю сигналы с внутренней синхронизацией
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:По поводу же значений с каналов, то сперва нужно проверить на штатном софте, соответствуют ли сигналы ожидаемым, и если нет, то проблема в первую очередь проверить соответствие подключения настройкам
Алексей, собственно значения каналов при внутренней синхронизации проверены, там все в порядке. Функция практически аналогична вашему тестовому примеру. А вот с внешней синхронизацией ... возникают вопросы. Поскольку при первой попытке сбора данных с АЦП при внешней синхронизации я получаю только 18 отчетов вместо 20, но есть подозрение, что согласно сообщению Гарманов Александр При первом импульсе буфер АЦП пуст первый сигнал заполняет буфер и только второй сигнал заставляет его передать данные дальше.
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,293
|
Re: E502 внешняя синхронизацмя
Не совсем понятно, все же с точки зрения вызовов функций, что происходит до первого и до второго запуска. Открывается ли соединение после первого запуска? Используется ли сейчас асинхронный вывод при этом? Что за источник частоты, он как-то урпавляется? В штатном примере при изменении синхронизации на внешюю у меня при первом запуске на два импульса приходит один отсчет, т.к. не приходит только последний семпл.
|
|
- Инженер-электронщик
- Откуда: "Л Кард"
- Здесь с 21.04.2014
- Сообщений: 4,597
|
Re: E502 внешняя синхронизацмя
Запуск преобразования АЦП от внешнего синхросигнала ранее обсуждался в этой конференции: http://www.lcard.ru/forums/viewtopic.php?id=9761 И тогда уже выяснили, что один лишний импульс синхронизации нужно добавлять в конце. Вообще, разработчиком предполагалось изначально,что в данном режиме на вход синхронизации будет подаваться постоянный периодичный сигнал (частота), поскольку это не просто вход синхронизации АЦП, а вход синхронизации всей первичной системы ввода-вывода: ADC, DI, DAC, DO. Поэтому, полученную "конвейерную задержку" получения данных АЦП относительно внешних одиночных синхроимпульсов следует воспринимать как особенность для данного частного случая.
Отредактировано Гарманов Александр (11.07.2017 19:56:00)
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:Не совсем понятно, все же с точки зрения вызовов функций, что происходит до первого и до второго запуска. Открывается ли соединение после первого запуска? Используется ли сейчас асинхронный вывод при этом? Что за источник частоты, он как-то урпавляется?
Соединение открывается при запуске ПО, устанавливается внутреняя синхронизация. Предполагаем, что обрыва соединения нет. При инициализации (запуске ПО) производится проверка соединения с модулем, прописываются параметры модуля. Источник частоты - внешний, НЕ управляется ПО Л-Кард или модулем Е502 Как я уже сообщал: получает управляющий сигнал ждет секунду выдает пачку импульсов, это вся его задача. Алексей L Card пишет:В штатном примере при изменении синхронизации на внешюю у меня при первом запуске на два импульса приходит один отсчет, т.к. не приходит только последний семпл.
В штатном примере, Алексей ... надо посмотреть, что и в какой последовательности вы производите и чем отличается от моего вопроса. Попробуйте изначально задать внутреннюю синхронизацию. И не запуская потока сбора переключить на внешнюю.
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Гарманов Александр пишет:Запуск преобразования АЦП от внешнего синхросигнала ранее обсуждался в этой конференции: http://www.lcard.ru/forums/viewtopic.php?id=9761 И тогда уже выяснили, что один лишний импульс синхронизации нужно добавлять в конце. Поэтому, полученную "конвейерную задержку" получения данных АЦП относительно внешних одиночных синхроимпульсов следует воспринимать как особенность для данного частного случая.
1) Александр - я НЕ электронщик, у вас в документации этого нет. 2) Как я могу узнать, что ПОДОБНЫЙ вопрос уже обсуждался? Именно с данным набором МС? Ну пропишите в доке. Я даже не знаю - надо мне прошивку обновить или нет - подскажите способ получать извещения по мылу. Но, то что при первом запуске функции сбора пролетает 2 отчета ... Готов Алексею предоставить тестовый пример.
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:В штатном примере при изменении синхронизации на внешюю у меня при первом запуске на два импульса приходит один отсчет, т.к. не приходит только последний семпл.
В штатном примере попробуйте выставить внешнюю синхронизацию. Запустить сбор. И выставить асинхронно выходы. Ваш пример дает ту же ошибку - 1004. Поверьте.
|
|
- Инженер-электронщик
- Откуда: "Л Кард"
- Здесь с 21.04.2014
- Сообщений: 4,597
|
Re: E502 внешняя синхронизацмя
stix_s пишет:1) Александр - я НЕ электронщик, у вас в документации этого нет. 2) Как я могу узнать, что ПОДОБНЫЙ вопрос уже обсуждался? Именно с данным набором МС? Ну пропишите в доке....
Откройте Руководство пользователя http://www.lcard.ru/download/e-502_users_guide.pdf , п.3.3.5.1: Опорная частота с входа DI_SYN1 (по фронту или по спаду), Опорная частота с входа DI_SYN2 (по фронту или по спаду), и в этом же пункте и ранее при описании принципа действия используется понятие внутренней или внешней опорной частоты fref для первичной синхронизации E-502. Таким образом, в Руководстве речь идёт исключительно о периодическом синхросигнале, для которого существует понятие "частота". Подтверждаю, что одиночные импульсы на входе синхронизации DI_SYN1, DI_SYN2 (в режиме внешней синхронизации частоты преобразования) является нештатным режимом эксплуатации E-502 c возможными недокументированными особенностями. "Как я могу узнать?": - поиском на форумах L-Card, - обратившись к техподдержке на форуме (что Вы и делаете) или по почте на support@lcard.ru . Замечу, что далеко не все компании имеют живой форум (для открытого обсуждения продукции компании) и русскоязычную техподдержку с технической консультацией инженеров (и на этапе выбора оборудования тоже). Кстати, это 8-ая Ваша тема по программированию L-502/E-502 на наших форумах, где техподдержка L-Card исправно Вам отвечает. По выбору оборудования c подробным изложением требований физической задачи Вы же не обращались? - я не нашёл. Программисту бывает сложно разобраться в физических свойствах измерительного оборудования - это понятно, но в этом случае нужно излагать техподдержке саму физическую задачу измерения (возможно, до покупки оборудования), чтобы быть уверенным, что оборудование и ПО соответствует требованиям задачи.
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Гарманов Александр пишет:Кстати, это 8-ая Ваша тема по программированию L-502/E-502 на наших форумах, где техподдержка L-Card исправно Вам отвечает.
И за это вам огромное спасибо. Чтобы понять ньюансы использования оборудования L-Card и выявить в чем ошибка обращусь еще не раз При подобном тесте: // режим синхронизации
err = X502_SetSyncMode(workX502.hndX502, X502_SYNC_INTERNAL);
_msg = X502_GetErrorString(err);
// условие запуска синхронного ввода/вывода данных.
err = X502_SetSyncStartMode(workX502.hndX502, X502_SYNC_INTERNAL);
// Записываем настройки в модуль
err = X502_Configure(workX502.hndX502, 0);
//-----------
// 10 каналов, внешняя синхронизация по спаду err = workX502.SetupParams(10, X502_SYNC_DI_SYN2_FALL, X502_SYNC_DI_SYN2_FALL);
// устанавливаем кол-во логических каналов, lch_cnt=10
err = X502_SetLChannelCount(workX502.hndX502, lch_cnt);
_msg = X502_GetErrorString(err);
// настраиваем лог каналы
for (int i = 0; i < lch_cnt; i++) {
err = X502_SetLChannel (workX502.hndX502, i, i, X502_LCH_MODE_COMM, X502_ADC_RANGE_10, 1);
_msg = X502_GetErrorString(err);
}
// режим синхронизации
err = X502_SetSyncMode(workX502.hndX502, X502_SYNC_DI_SYN2_FALL);
_msg = X502_GetErrorString(err);
// условие запуска синхронного ввода/вывода данных.
err = X502_SetSyncStartMode(workX502.hndX502, X502_SYNC_DI_SYN2_FALL);
_msg = X502_GetErrorString(err);
// Установка значения внешней опорной частоты синхронизации
X502_SetExtRefFreqValue(workX502.hndX502, 180000);
// настраиваем частоту сбора с АЦП и цифровых
// Устанавливаем частоту синхронного сбора для АЦП 1МГц
err = X502_SetAdcFreq(workX502.hndX502, &x502AdcFreq, &x502AdcFreqLch);
_msg = X502_GetErrorString(err);
// Устанавливаем частоту синхронного сбора для цифровых x502DinFreq = 2000
err = X502_SetDinFreq(workX502.hndX502, &x502DinFreq);
_msg = X502_GetErrorString(err);
// пропускаем каждый 2 такт
err = X502_SetAdcFreqDivider(workX502.hndX502, 1);
_msg = X502_GetErrorString(err);
// Разрешение синхронных потоков на ввод/вывод.
err = X502_StreamsEnable(workX502.hndX502, X502_STREAM_ADC);
_msg = X502_GetErrorString(err);
// Записываем настройки в модуль
err = X502_Configure(workX502.hndX502, 0);
_msg = X502_GetErrorString(err);
// выставим 1 на DO10
unsigned int start_time = clock(); // начальное время
err = workX502.SetAsyncDigOut(512, _msg);
_msg = X502_GetErrorString(err);
// запустим поток сбора
err = X502_StreamsStart(workX502.hndX502);
// выставим 1 на DO10
//err = workX502.SetAsyncDigOut(512, _msg);
_msg = X502_GetErrorString(err);
unsigned int end_time = clock();
unsigned int search_time = end_time - start_time; // искомое время
// Sleep(30);
// Поспим
Sleep(3000);
// Функция возвращает количество отсчетов, которые были приняты из модуля
// во внутренний буфер и готовы для считывания
err = X502_GetRecvReadyCount(workX502.hndX502, &rcvCountReady);
_msg = X502_GetErrorString(err);
// заберем, что пришло
rcvSizeRealStep = X502_Recv(workX502.hndX502, rcv_buf, 200, 200);
Всегда 18 отчетов. И пропал повтор канала 4 Value: 1,1000 adcData: 0 Value: -0,0048 adcData: 1 Value: 0,0020 adcData: 2 Value: -0,0180 adcData: 3 Value: 0,0016 adcData: 4 Value: 1,1000 adcData: 5 Value: 0,0024 adcData: 6 Value: 0,0024 adcData: 7 Value: 0,0020 adcData: 8 Value: -0,0380 adcData: 9 Value: 0,0016 adcData: 10 Value: 0,0016 adcData: 11 Value: 0,0016 adcData: 12 Value: 0,0016 adcData: 13 Value: 0,0024 adcData: 14 Value: 0,0020 adcData: 15 Value: 0,0016 adcData: 16 Value: 0,0020 adcData: 17 Value: 0,0024
Было adcData: 0 Value: -0,0032 adcData: 1 Value: 0,0024 adcData: 2 Value: -0,0130 adcData: 3 Value: 0,0024 adcData: 4 Value: 1,1000 adcData: 5 Value: 0,0028 adcData: 6 Value: -0,0080 adcData: 7 Value: 0,0028 adcData: 8 Value: -0,1900 adcData: 9 Value: 0,0032 adcData: 10 Value: -0,0190 adcData: 11 Value: 0,0024 adcData: 12 Value: 0,0016 adcData: 13 Value: 0,0020 adcData: 14 Value: 1,1000 adcData: 15 Value: 0,0020 adcData: 16 Value: 0,0024 adcData: 17 Value: 0,0020
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,293
|
Re: E502 внешняя синхронизацмя
По поводу двух пропущенный импульсов, я не увидел, что Вы настраиваете не только частоту от SYN2, но и старт от него же. В этом случае действительно повторяется пропуск двух импульсов, но если честно я не очень вижу смысл настраивать и старт по тому же признаку, т.к. если Вы старт настроите INTERNAL, то в любом сбор запустится сразу но первый отсчет будет оцифрован только по первому фронту. В режиме старта INTERNAL модуль должен работать всегда предсказуемо, что нужно добавить один лишний импульс (т.к. последнее измерение как бы застревает в модуле и не передается). Попробуйте с такой настройкой.
|