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


E-140

Вы не вошли.

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

Max
28.05.2005 03:49:16
#1

Гость

E-140

Всех приветствую!

Подскажите каким образом в Delphi задается логический номер канала с входящими в него параметрами.
Поясните  следующую строчку:

            // физический канал = 4, режим = дифференциальный вход, усиление = x1
            adc_pars.ControlTable[0]:=(4 shl 0)or(0 shl 4)or(0 shl 6);

Или:

Например, логический номер для модуля E-140 равный 0х2 означает дифференциальный режим работы 3его канала с единичным усилением, 0х82 – с усилением равным 16.

Всем спасибо.

DKorolkov
30.05.2005 10:33:56
#2

Гость

Re: E-140

Подробно это описано в разделе "логический номер канала АЦП".

Если кратко -- конфигурация канала описывается одним байтом, в котором разные биты и группы битов задают различные параметры.

Бит 5: 0 -- дифференциальный режим, 16 каналов
       1 -- режим с общей землёй, 32 канала.

Для дифференциального режима
биты 0-3 -- номер канала.
бит 4 -- калибровка нуля.
Для режима с общей землёй
биты 0-4 -- номер канала.

Биты 6-7 -- коэффициент усиления.

Пример 1:
Канал 7, дифференциальный режим, усиление x16 (код 2)

7 or (2 shl 6)


Пример 2:
Канал 12, дифференциальный режим, калибровка нуля, усиление x4 (код 1)

12 or (1 shl 4) or (1 shl 6)

Пример 3:
Канал 17, режим с общей землёй, усиление x1 (код 0)

17 or (1 shl 5) or (0 shl 6)

MAX
30.05.2005 11:36:01
#3

Гость

Re: E-140

Да, это всё понятно...
12 or (1 shl 4) or (1 shl 6) - это каким образом сочиняется? Эту строчку разъясните.

DKorolkov
30.05.2005 12:13:19
#4

Гость

Re: E-140

> 12 or (1 shl 4) or (1 shl 6) - это каким образом сочиняется? Эту строчку разъясните.

Нам нужно установить:
12 (двоичное 1100) в битах 0-3
1 в бите 4
1 (двоичное 01) в битах 6-7

В итоге должно получиться 01011100.

Берём 12 (00001100), 1 сдвинутую на 4 бита влево (00010000), 1 сдвинутую на 6 бит влево (01000000) и формируем байт операцией "побитовое или":
  00001100
or
  00010000
or
  01000000
=
  01011100

Max
31.05.2005 12:39:35
#5

Гость

Re: E-140

Премного благодарен.