Hallo,

du machst aber ne komische Umrechnung.
Da braucht man doch garnix viel rechnen.

Definier doch einfach eine Integervariable als Overlay auf die Arrayadresse. Das ist viel bequemer.

Du hast ja dein Array so definiert:
Dim Sc(9) as Byte

Wenn die Daten eingelesen sind, ist der Temperaturwert in Sc(1) und Sc(2) und zwar in der Reihenfolge Lowbyte dann Highbyte.

Definier eine Variable z.B.

Dim TemperaturInteger as Integer at Sc(1) overlay

und eine Single-variable für den Realwert.

Dim Temperatur as Single

Dann die Variable lesen und du hast fast den Temperaturwert. Noch durch 2 Teilen bei Auflösung 0,5°C oder durch 10 bei Auflösung 0,1°C.

Temperatur=TemperaturInteger/2 ' in °C mit Kommastelle

Das sollte bei allen DS18xxx funktionieren.

Mitch