Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


LTR11 - "перепутаны" элементы в ответе l

Вы не вошли.

 Поиск | Регистрация | Вход 

Георгий
13.11.2010 15:46:01
#1

Гость

LTR11 - "перепутаны" элементы в ответе l

Добрый день!

Для сбора с LTR11 используется пример из ltr-11//examples//Microsoft_Visual_C++//ReadData :

//...

/* задание параметров работы модуля */
/* режим старта сбора данных - внутренний */
hltr11.StartADCMode = LTR11_STARTADCMODE_INT;
/* режим синхронизации АПЦ - внутренний */
hltr11.InpMode      = LTR11_INPMODE_INT;
/* количество логических каналов - 2 */
hltr11.LChQnt       = 2;
/* таблица управления логическими каналами */
/* диапазон - 10В, режим - 16-канальный, физический канал - 1 */
hltr11.LChTbl[1] = (LTR11_CHGANE_10000MV << 6) | (LTR11_CHMODE_16CH << 4) | (1 << 0);
/* диапазон - 10В, режим - 16-канальный, физический канал - 2 */
hltr11.LChTbl[2] = (LTR11_CHGANE_10000MV << 6) | (LTR11_CHMODE_16CH << 4) | (2 << 0);

/* режим сбора данных */
hltr11.ADCMode = LTR11_ADCMODE_ACQ;
/* частота дискретизации - 1 кГц */
hltr11.ADCRate.prescaler = 1;
hltr11.ADCRate.divider   = 14999;
//...
ltr11_status = LTR11_SetADC(&hltr11);
//...
hnd_acq_thread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)AcquireThread, NULL, 0, &acq_thread_id);
//...
/* проверка готовности блока данных */
if (AcqBlockReady[block_number])
// При выводе значений "перепутаны" каналы:
// 0-й выводится в acq_buf[%i][1]
// 1-й - в acq_buf[%i][0]
sprintf(msg, ">> block_counter = %i, acq_buf[%i][0] = %f , acq_buf[%i][1] = %f//n", block_counter, block_number, acq_buf[block_number][1], block_number, acq_buf[block_number][2]);
//...
Можно ли из приведенного куска примера сказать, в чем моя ошибка?

С уважением, Георгий.

13.11.2010 17:33:54
#2

Сотрудник "Л Кард"
Здесь с 18.04.2014
Сообщений: 810

Re: LTR11 - &quot;перепутаны&quot; элементы в ответе l

hltr11.LChTbl[1] и [2] заменить на [0] и [1]
Номера физических каналов в младших 4 битах hltr11.LChTbl[x] - тоже начинаются с нуля.

То есть, если Вы подаете сигнал на разъемы X1Y1 и X2Y2, то:
hltr11.LChTbl[0] = (LTR11_CHGANE_10000MV << 6) | (LTR11_CHMODE_16CH << 4) | 0;
hltr11.LChTbl[1] = (LTR11_CHGANE_10000MV << 6) | (LTR11_CHMODE_16CH << 4) | 1;