Hallo,
hier wurde lange nicht mehr geschrieben aber ich versuchs mal 
Das Programm läuft soweit, aber die Temperatur springt in 0,5°C Schritten - warum nicht in 0,1°C Schritten?
Und das zweite Problem ist ein Anzeige Problem:
Ôeíðåòáôõò 1: 27.0°Ã
Ôåíðåòáôõr 2: 26.5°Ã
Ja was ist denn da falsch? Temperatur 1: wäre besser als Ôeíðåòáôõò
Hat jemand eine Idee?
Tobias
Code:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Config 1wire = Portb.0
Dim T1 As single
Dim T2 As Single
Dim I As Byte
Dim Id1(8) As Byte
Dim Id2(8) As Byte
Dim Ar1(2) As Byte
Dim Ar2(2) As Byte
Id1(1) = 1wsearchfirst()
Id2(1) = 1wsearchnext()
Do
Print " "
1wreset 'reset
1wwrite &H55 'Match Rom command
1wwrite Id1(1) , 8 'Id von Sensor 1
1wwrite &H44 'Convert T
Waitms 300 'warten bis convert T fertig ist
1wreset 'reset
1wwrite &H55 'match rom command
1wwrite Id1(1) , 8 'id von sensor 1
1wwrite &HBE 'scratchpad lesen
Ar1(1) = 1wread(1) 'erstes byte auslesen, da steht Temp drin
Ar1(2) = 1wread(1) 'zweites Byte auslesen, wenn 00000000 dann pos vorzeichen, wenn 11111111 dann neg vorzeichen
Waitms 500
1wreset 'reset
1wwrite &H55 'Match Rom command
1wwrite Id2(1) , 8 'Id von Sensor 2
1wwrite &H44 'Convert T
Waitms 300 'warten bis convert T fertig ist
1wreset 'reset
1wwrite &H55 'match rom command
1wwrite Id2(1) , 8 'id von sensor 2
1wwrite &HBE 'scratchpad lesen
Ar2(1) = 1wread(1) 'erstes byte auslesen, da steht Temp drin
Ar2(2) = 1wread(1) 'zweites Byte auslesen, wenn 00000000 dann pos vorzeichen, wenn 11111111 dann neg vorzeichen
T1 = Ar1(1) / 2
T2 = Ar2(1) / 2
If Ar1(2) = 0 Then 'wenn byte 2 aus dem sensor = 0 dann temp pos, sonst neg
Print "Temperatur 1: " ; T1 ; "°C"
Else
Print "Temperatur 1: " "-" ; T1 ; "°C"
End If
If Ar2(2) = 0 Then 'wenn byte 2 aus dem sensor = 0 dann temp pos, sonst neg
Print "Temperatur 2: " ; T2 ; "°C"
Else
Print "Temperatur 2: " "-" ; T2 ; "°C"
End If
Waitms 500
Loop
Lesezeichen