Написание программных приложений для контроллера ZetLab

При написании программных приложений для контроллера ZLab. Можно использовать в качестве основы пример следующего исходного кода https://file.zetlab.com/Document/Samples/drivers/Test_Zadc_C++/Test_Zadc.cpp. Однако в результате могут возникнуть некоторые проблемы, поэтому надо помнить несколько нюансов.

  • Необходимо учитывать параметры и технические возможности подключённого устройства.

Например: если вы используете устройство ZET 210, то вы не можете задать частоту дискретизации АЦП 1 МГц, т.к. у ZET 210 максимально возможная частота дискретизации при одном включенном канала 500 кГц. Поэтому какую бы частоту больше 500 кГц Вы ни задавали, устройство будет выдавать данные с частотой дискретизации 500 кГц. Частоту необходимо задавать в соответствии со списком частот, который можно получить так:

Err ZGetListFreqADC(typeDevice, numberDSP, 0, &freq);
while (Err != 0x0200)
Err ZGetListFreqADC(typeDevice, numberDSP, 1, &freq);

Примечание: если вы будете выставлять частоту больше указанного в технических характеристиках устройства. Индикатор может отражать увеличение, начиная мигать чаще, но данные будут поступать не в установленном объёме, а объёме максимально возможном для прибора.

  • В примере выполняется чтение и обработка одного единственного отсчёта за время ожидания.
    Если Вам необходимо больше, то вы должны внести обработку каждого отсчёта в код.

Примечание: Данные, доступные для обработки — это данные между pointerADC_old и  pointerADC. Чем больше частота, тем больше будет между ними разница в момент обработки. Соответственно, если pointerADC_old != pointerADC, то это означает, что накопились данные размером от pointerADC_old до pointerADC (нужно не забыть учесть переход через границу кольцевого буфера, в примере это есть).

  • Если полученные результаты не советуют предполагаемым, необходимо проверить: выполнили ли вы в программе запуск АЦП.
    Также проверить, работает ли устройство со штатным ПО ZETLAB при тех настройках, которые вы задаёте в программе.

Примечание: В качестве индикатора проверки можно воспользоваться программой Время ZETServer из вкладки Сервисные панели ZETLAB. При нормальной работе время по каналам устройства должно изменяться синхронно и равномерно.

Так же хотелось бы напомнить о том, как выглядит цикл для считывания данных по всем отсчётам:

При частоте 32 кГц за секунду будет приходить 32000 отсчёт ов по каждому включенному каналу. Если включен один канал то будет приходить всего 32000 отсчётов, т.е. указатель pointerADC будет изменяться на 32000 позиций (поскольку в ZET210 16-разрядный АЦП и один отсчёт соответствует одному слову, т.е. 2 байтам). Таким образом цикл сводится к тому, чтобы запрашивать позицию pointerADC, сравнивать ее с предыдущим значением и если между ними есть разница, то можно из буфера взять данные от pointerADCold до pointerADC — это и есть новые пришедшие данные.

Авторизация
*
*

4 × четыре =

Потеряли пароль?

Политика конфиденциальности персональных данных

Регистрация
*
*
*

четыре × 3 =

Политика конфиденциальности персональных данных

Генерация пароля

17 + 4 =