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.
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.Code:$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
EDIT: Habe jetzt mal die Temp. unter meinem Arm gemessen, 36,7°C -- könnte also ziemlich genau hinkommen
Gruesse Clemens







Zitieren

Lesezeichen