Hallo zusammen,

ich versuche auch schon seit Tagen mit der RNControl und einem DS1621 eine Temperatur anzuzeigen.
Ich bin recht enttäuscht, dass eine so simple Aufgabe fast unlösbar ist. Ich bin davon ausgegangen, dass soetwas schon 1000fach probiert wurde und hätte schon ein paar perfekte Lösungen erwartet.

Aber ich habe aus Euren Vorschlägen ein PRG ableiten können, das bei mir auf dem LCD und auf der RS232 die Temperatur formatiert anzeigt.

Hier ist es:

$regfile = "M32def.dat" ' chip
$crystal = 16000000 ' frequenz
$baud = 9600 ' baud rate

Config Scl = Portc.0 ' we need to provide the SCL pin name
Config Sda = Portc.1 ' we need to provide the SDA pin name

Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4
Config Lcd = 16 * 2
Config Portb = Output
Config Lcdbus = 4

Dim ___lcdno As Bit
Dim Lowtemp As Byte
Dim Hightemp As Byte
Dim Value As Word
Declare Sub Convertvalue_komma1()
Dim Convert_strg As String * 10 '!!!!!!!
I2cinit
Cls

Do

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

I2cstart
I2cwbyte 144
I2cwbyte &HAA 'Temperaturmessung Lesekommando
I2cstop

I2cstart
I2cwbyte 145
I2crbyte Lowtemp , Ack 'LSB holen
I2crbyte Hightemp , Nack 'MSB holen

I2cstop

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


Call Convertvalue_komma1()
Print Convert_strg ; " C"


Locate 1 , 1
Lcd Convert_strg ; " C"

Waitms 1000 'kurze Pause
Loop


End

'-------------------------------------------------------------------------------
'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
'---------------------------------


Gruß aus Essen, Peter