Hallo for_ro,
so, mit Deiner Hilfe hat es geklappt. Ich habe da wohl wirklich mehrfach auf dem Schlauch gestanden. Ich stelle den funktionierenden Code mal für den nächsten rein:
Danke und GrußCode:Messen: For I = 1 To Sensoren 1wreset Pinc , I 'Reset DS1820 1wwrite &HCC , 1 , Pinc , I 'überspringe ROM 1wwrite &H44 , 1 , Pinc , I 'starte Temperaturkonvertierung Next I Return Auslesen: For I = 1 To Sensoren 1wreset Pinc , I 'Reset DS1820 1wwrite &HCC , 1 , Pinc , I 1wwrite &HBE , 1 , Pinc , I 'sende T-Register 60h und 61h an Atmel Ar(1) = 1wread(9 , Pinc , I) Ar(1) = 1wread(9 , Pinc , I) If Ar(9) = Crc8(ar(1) , 8) Then 'Prüfsumme OK? Ds1820 = Makeint(ar(1) , Ar(2)) 'Ja, dann Temperatur berechnen Else Goto Fehler 'CRC Fehler -> naechster Sensor End If 1wreset Pinc , I 'Reset DS1821 Halb = Ds1820 And 1 'prüfen auf letztes Bit (x.5 Grad) Shift Ds1820 , Right 'entferne letztes Bit (Rechtsschieben) Ds1820 = Ds1820 And 255 'Nur die unteren 8 Bit werden benötigt If I = 1 Then Tesp = Ds1820 'Ganzzahlige Temperatur der ESP (1 Byte) ' End If Vorzeichen = " " 'Vorzeichen zurücksetzen If Ds1820 > 127 Then 'wenn Temperatur negativ ist Vorzeichen = "-" Ds1820 = 256 - Ds1820 'und negative Temperatur berechnen If Halb = 1 Then Ds1820 = Ds1820 - 1 'wenn Wert x.5 dann um 1 korrigieren End If End If If Halb = 1 Then Nachkomma = "5" 'wenn x.5 Else 'wenn x.0 Nachkomma = "0" End If Temperatur = " " + Vorzeichen + Str(ds1820) '"-_-xxx" Temperatur = Right(temperatur , 4) '"-xxx" Temperatur = Temperatur + "." + Nachkomma + Chr(223) + "C" '"-xxx.y°C" 8 Zeichen Sensor(i) = Temperatur Fehler: 'CRC Fehler, alten Temperaturwert des Sensors behalten Next I Return
Horst







Zitieren

Lesezeichen