Hallo Ralf !
Na, das ist schön zu lesen, dass es nun funktioniert!
Ich bin ja kein Experte und Markus kann dir bestimmt noch viiiiiel mehr über 1Wire berichten als ich, aber ich kann es ja mal versuchen.
Wenn du dich mit dem 1wire-Bus mal etwas beschäftigst, oder auch das Datenblatt des DS1820 durchforstest dann wirst du feststellen, dass z.B. das "1wreset" ein kurzer Puls der Datenleitung zu GND ist und damit ein "Befehl" gesendet wird, dass z.B. Daten erwartet werden.
Die Angaben &HCC, &H44, &H55 kannst du z.B. im Datenblatt nachlesen.
Diese hexadezimalen Angaben senden also bitweise einen Code und veranlassen damit den Sensor etwas bestimmtes zu tun.
Erst wird also ein Reset auf den BUS "geschickt".
Dann folgt vielleicht das Signal &H44 .... das den DS1820 dazu veranlasst eine Temperaturmessung durchzuführen.
Mit z.B. &HBE möchtest du den Inhalt des Scratchpad Rams (wahnsinns Name) "auslesen".
Ich habe mir das Wissen über den 1wire-BUS aber auch nur angelesen.
Dabei hat mir das Buch von Claus Kühnel sehr geholfen und dort wird auch eine Menge erklärt...... nicht nur zu der Programmierung, sondern auch warum das so ist.
Kennst du das Buch?
Die Sache mit dem &H55 (zur einzelnen Ansprache) habe ich damals im Datenblatt des DS1820 gefunden und einfach mal ausprobiert..... steht auf Seite 9.
Tja, dass war nun der Schnelldurchlauf, was mir spontan zum DS1820 und dem 1wire-BUS einfällt.
Wie schon gesagt.... Ich bin da nicht der Experte und es gebe mit Sicherheit noch eine Menge über das Thema zu berichten, aber wofür gibt es gute Bücher!
Was mir in deinem Code aufgefallen ist....
Code:
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 800
1wreset
Du machst zu Beginn einen Reset. Das ist auch OK.... siehe oben.
Dann überspringst du mit &HCC die Romdaten des Sensors.....
Mit &H44 veranlasst du die Temperaturmessung....
Dann folgt eine Pause, damit der Sensor seine Arbeit verrichten kann...
Tja und nun sendest du wieder ein Reset......
Das wäre aber erst notwendig, wenn gleich danach auch ein "Befehl" folgen würde..... z.B. &HCC, &HBE
Ansonsten schreibst du ja, dass dein Code funktioniert. Ergo hast du es im Großen und Ganzen ja auch richtig gemacht.
Von daher wünsche ich dir noch viele Erfolge in dieser Richtung!
Cassio