Hallo

Ich habe einmal dass oben von hrei, angepasst und probiert, jedoch spuckt er immer nur 255.0 aus, was mache ich falsch? Achja, ich benütze dass RN-Controll.

Code:
'-------------------------------------------------------------------------------
'-----  Beispiel für das Auslesen des Temperatursensors DS1621/1631 ------------
'                                                                       HR 2006
'
'Anmerkung: Dieses Beispiel ist sowohl für den 1621 als auch für den 1631
'geeignet. Der 1631 wird dabei im 1621 Kompatibilitätsmodus betrieben.
'Auf die Auswertung negativer Temperaturen wird verzichtet.
'-------------------------------------------------------------------------------

$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600

$hwstack = 32
$swstack = 32
$framesize = 32

Config Scl = Portc.0
Config Sda = Portc.1


I2cinit                                      'entbehrlich
'-------------------------------------------------------------------------------
Declare Sub Readtemp(byval Device As Byte)
Declare Sub Convertvalue_komma1()

Dim Value As Word
Dim Convert_strg As String * 10

Const Ds1 = 150                              'ggf. anpassen
'----------------------------- Hauptprogramm -----------------------------------

Do
Call Readtemp(ds1)
Call Convertvalue_komma1()
Print Convert_strg
Waitms 500
Loop

End

'----------------------------- Subroutinen -------------------------------------

'Readtemp liest die Temperatur und stellt sie nach Aufruf in der Variable Value
'in 10tel Grad zu Verfügung. Übergeben wird die Deviceadresse des Sensors.

Sub Readtemp(byval Device As Byte)
Local Deviceread As Byte
Local Lowtemp As Byte
Local Hightemp As Byte

Deviceread = Device + 1

I2cstart
I2cwbyte Device
I2cwbyte &HEE                                'Temperaturmessung anstoßen
I2cstop

I2cstart
I2cwbyte Device
I2cwbyte &HAA                                'Temperaturmessung Lesekommando
I2cstop

I2cstart
I2cwbyte Deviceread
I2crbyte Lowtemp , Ack                       'LSByte holen (Ganze Grad)
I2crbyte Hightemp , Nack                     'MSByte holen (0,5 Grad Indikator)
I2cstop

Value = Lowtemp * 10
If Hightemp = 128 Then
  Value = Value + 5
End If

End Sub

'-------------------------------------------------------------------------------
'Convertvalue_komma1 wandelt Value in einen String mit einer Nachkommastelle.
'Es wird gezeigt wie ein Zahlenwert in ein String gewandelt wird und dieser
'formatiert werden kann.
'Alternativ kann natürlich auch die "/10, Mod 10 Methode" angewandt werden.

Sub Convertvalue_komma1()

Convert_strg = Str(value)
Convert_strg = Format(convert_strg , " 0.0")

End Sub
'---------------------------------
mfg Luca