LuK-AS
17.05.2005, 20:02
Hallo Gemeinde,
hier habe ich mal den funktionierenden Bascom-Code für einen DS18B20 Temperatursensor in 1-Wire Technik. Der Code passt gerade so in den AT90S2313 hinein :) (95% Speichernutzung) ob die Ergebnisse zu 100% stimmen, kann ich erst sagen wenn ich mal einigen Medien mit verschiedenen Temperaturen gemessen habe. Zumindest sieht das Ergebnis schon mal ganz anständig aus.
$crystal = 4000000
$baud = 19200
Config 1wire = Portb.0
Dim T1 As Single
Dim T2 As Single
Dim B1 As Byte , B2 As Byte , R As Byte
Dim Tmp As String * 6
Dim Vorzeichen As String * 1
R = &HFF
Do
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 250
1wreset
1wwrite &HCC
1wwrite &HBE
B1 = 1wread()
B2 = 1wread()
1wreset
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Vorzeichen = "-"
Else
Vorzeichen = "+"
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
Print Vorzeichen ; T1 ; "C "
Waitms 250
Loop
End
Habe hier mehrmals gelesen, dass niemand den Sensor bis jetzt erfolgreich ausgelesen hat. Oke, ich gebs zu, Google und Datenblatt haben mir sehr dabei geholfen.
EDIT: Habe jetzt mal die Temp. unter meinem Arm gemessen, 36,7°C -- könnte also ziemlich genau hinkommen :)
Gruesse Clemens
hier habe ich mal den funktionierenden Bascom-Code für einen DS18B20 Temperatursensor in 1-Wire Technik. Der Code passt gerade so in den AT90S2313 hinein :) (95% Speichernutzung) ob die Ergebnisse zu 100% stimmen, kann ich erst sagen wenn ich mal einigen Medien mit verschiedenen Temperaturen gemessen habe. Zumindest sieht das Ergebnis schon mal ganz anständig aus.
$crystal = 4000000
$baud = 19200
Config 1wire = Portb.0
Dim T1 As Single
Dim T2 As Single
Dim B1 As Byte , B2 As Byte , R As Byte
Dim Tmp As String * 6
Dim Vorzeichen As String * 1
R = &HFF
Do
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 250
1wreset
1wwrite &HCC
1wwrite &HBE
B1 = 1wread()
B2 = 1wread()
1wreset
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Vorzeichen = "-"
Else
Vorzeichen = "+"
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
Print Vorzeichen ; T1 ; "C "
Waitms 250
Loop
End
Habe hier mehrmals gelesen, dass niemand den Sensor bis jetzt erfolgreich ausgelesen hat. Oke, ich gebs zu, Google und Datenblatt haben mir sehr dabei geholfen.
EDIT: Habe jetzt mal die Temp. unter meinem Arm gemessen, 36,7°C -- könnte also ziemlich genau hinkommen :)
Gruesse Clemens