Nachdem der Threadtitel vom alten so garnicht mehr zum Thema past und auch etwas unübersichtlich geworden ist, hier mal ein neuer. Ich möchte einen DS18B20 Temperatursensor an einem ATmega16 mit 4MHz auf meinem STK500 in Betrieb nehmen. Der Sensor ist mit einem 4,7k Pull-Up angeschlossen Die 3 obigen Dateien sind die Sources für das Temperatur auslesen. Ich kann bereits erfolgreich einen Reset mit Prescence erzeugen. Außerdem kann ich beliebige Werte in die beiden Userbytes schreiben und erfolgreich zurücklesen. Des weiteren kann ich erfolgreich das Komplette Scratchpad auslesen. Auch da sind dann alle Werte wie im Datenblatt angegeben. Wenn ich nun aber eine Temperaturwandlung starte und versuche den Status über den Datenpin abzufragen, bekomme ich sofort eine eins zurück. Sprich er meint er wäre fertig. Also warte ich momentan fest 750ms. Wenn ich dann das Scratchpad auslese sind die Bytes 2-7 richtig, aber MSB und LSB haben folgende Werte: LSB: 0xFF 1 1 1 1 1 1 1 1 MSB: 0x07 0 0 0 0 0 1 1 1 die fünf Nullen sind das vorzeichen und die 12 einsen sind die Temperatur. Das würde dann aber einer Temperatur von 127,9375°C entsprechen und das kann ja nicht stimmen. Kann mir einer sagen wo der fehler in meinem Programm liegt?
Ok, und was ist da noch Flasch, ich hab den ja angepasst von den Timings und der auswertung für die Temperatur. Wo hab ich denn noch was vergessen.
Hat sich erledigt, Ich hab mal den Sensor getausch! Jetzt funktioniert alles wie es soll Wenn jemand den Code verwenden möchte viel Spaß damit, so wie er da steht läuft ein DS18B20 pro pin damit, aber nur ohne adressierung.
Hattest du es auch mit einem 18S20 laufen? Da müsste ja nur die Berechnung anders sein oder? Aber wie?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.