Протокол работы ДВ2ТС-А

Техническая поддержка приборов, выпускаемых ООО НПК "МИКРОФОР"

Модератор: Админ

Ответить
KirillSimatic
Сообщения: 2
Зарегистрирован: Пн июл 16, 2018 1:26 pm

Протокол работы ДВ2ТС-А

Сообщение KirillSimatic »

Здравствуйте. Подскажите как правильно вычислить знак значения температуры для датчика ДВ2ТС-А.

В описании сказано что :

Значение температуры в градусах Цельсия, считанное из регистра с адресом 202h, вычисляется следующим образом:
Т = 0,01•(256•HIGH_BYTE + LOW_BYTE)
Обратите внимание, что значение температуры может быть отрицательным, используйте знаковое представление числа!

У меня HIGH_BYTE = 251 LOW_BYTE =174 , должно получится отрицательное значение , датчик в холодильной камере.Как правильно сделать пересчет ?
Админ
Сообщения: 335
Зарегистрирован: Пт дек 17, 2004 12:06 pm

Re: Протокол работы ДВ2ТС-А

Сообщение Админ »

Знаковое представление числа это:
int16_t (stdint.h) в C
или
SmallInt в Delphi.
т.е.
16 бит и старший бит это знак.
Т.е. в Вашем случае это -1106 или -11.06 град. Цельсия.
KirillSimatic
Сообщения: 2
Зарегистрирован: Пн июл 16, 2018 1:26 pm

Re: Протокол работы ДВ2ТС-А

Сообщение KirillSimatic »

Может кому пригодится ....

Дополнительный код

В дополнительном коде, также как и прямом, первый разряд отводится для представления знака числа. Прямой код используется для представления положительных чисел, а дополнительный – для представления отрицательных. Поэтому, если в первом разряде находится 1, то мы имеем дело с дополнительным кодом и с отрицательным числом.

Все остальные разряды числа в дополнительном коде сначала инвертируются, т.е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 – это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011. Но это еще не окончательный вид дополнительного кода числа.

Далее следует прибавить единицу к получившемуся инверсией числу:

1 1110011 + 1 = 1 1110100

В итоге и получается число, которое принято называть дополнительным кодом числа.
Ответить