В общем добился я результата по твоим рекомендациям http://forum.vip-cxema.org/index.php?/topic/891-eeprom/page-2
Но никак не могу въехать почему так получается в цикле.
main:
for Sensor = 0 to 2
Lookup Sensor,[8,16,24], Adr
read Adr,id[0],id[1],id[2],id[3],id[4],id[5],id[06],id[7]
gosub DS18B20
next Sensor
gosub Display
GoTo main
DS18B20:
OWOUT DQ, 1, [$55, str ID\8, $44]
ReadBusy:
OWIN DQ, 4, [busy]
If Busy = 0 Then ReadBusy
OWOUT DQ, 1, [$55, str ID\8, $BE]
OWIN DQ, 2, [RAWTEMP.LowByte, RAWTEMP.HighByte]
If SignBit <> 1 Then
TerC[sensor] = rawtemp / 16
TerD[sensor] = (rawtemp // 16) * 10 / 16
TempA[sensor] = TerC[sensor] * 10 + TerD[sensor]
Else
TerC[sensor] = 65535 - rawtemp
tempdat = TerC + 1
TerC[sensor] = tempdat / 16
TerD[sensor] = ((tempdat + 1) // 16) * 10 / 16
TempA[sensor] = TerC * 10 + TerD[sensor]
EndIf
RETURN
Получаем: