1. Хотелось бы понять как происходят вычисления температуры с датчика.
Convert:
if coldbit <> 1 then
tempcel = temper / 16
tempdec = temper * 10 / 16
else
tempcel = 65384 - temper
tempdat = tempcel + 1
tempcel = tempdat / 16
tempdec = ((tempdat + 1) // 16) * 10 / 16
endif
return
2. Отрицательная температура отображается не правильно. При температуре "-1" показывает 95,6 (пришел к выводу - отсчет идет от 4096). Поэтому и хотелось бы разобраться с расчетами и формулой.
3. Термореле. При целых значениях температуры все работает. Пытаюсь подставить десятичные, перестает работать. Возможно не правильно пишу выражение, поправьте меня. Или, возможно, датчик не работает с десятичными (хотя на индикаторе отображается).
Termostat:
if tempcel <= 26 and tempdec <= 5 then
rele = 1
endif
if tempcel = 29 and tempdec = 2 then
rele = 0
endif
return
P.S. Нашел на просторах интернета, но тоже без описания процедуры вычисления (с виду код короче):
if SignBit=0 then
SignC="+"
else
SignC="-"
rawtemp = ~rawtemp+1
endif
dummy = rawtemp*625
TempC=DIV32 100
return
А целые значения = TempC/100