www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS18B20 zu komplizierte Ansteuerung?


Autor: Marco M. (marco1987)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute habe gerade mal in dem ausführlichen Datenblatt (siehe anhang) 
den C code mir angeschaut und die Anzahl der benötigten Funktionen. Das 
ist ja unglaublich wie umfangreicht das ist.
Ich hatte mir das mit dem 1 wire sensor einfach so vorgestellt:


Tempsensor versorgen, adresse abfragen, temp einlesen fertig.


hat jmd von euch so ein kurzes programm in C? meisten hier im Forum sind 
nu in asm.

mfg

Autor: uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte so ein teil mit Bascom angesteuert, das war natuerlich 
einfach. so kompliziert ist der prinzipielle Ablauf aber nicht:

einzelner DS18S20 am Bus:

- Reset
- search first device (um zu wissen das auch 'jemand' da ist)
- skip rom[1]
- jetzt messen
- jetzt 200ms(?) warten
- jetzt scratchpad uebertragen in array aus 9 bytes
- fertsch

im ersten byte ist der absolutwert der Temperatur, um 2. das vorzeichen

[1]: bei mehreren geraeten wird es hier etwas komplexer mit den 
Adressen, bei einem Geraet ist die Adresse Wurst.

HTH, bye uwe, der aber kein C beherrscht, auch kein assembler

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
siehe Codesammlung:
Beitrag "DS1820, DS18B20 in C"

Beim 1-Wire Protokoll ist stark auf das Timing zu achten. Es ist gerade 
am Anfang nicht leicht zu durchblicken, wenn man das Prinzip erstmal 
kapiert hat, ist es ein recht leistungsstarkes Verfahren.

Autor: dummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Beim 1-Wire Protokoll ist stark auf das Timing zu achten. Es ist gerade
>am Anfang nicht leicht zu durchblicken, wenn man das Prinzip erstmal
>kapiert hat, ist es ein recht leistungsstarkes Verfahren.

Wenn man Programme gerne per Interrupt steuert
ist es ein absolut bescheuertes und unbrauchbares
Protokoll.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dummy wrote:

> Wenn man Programme gerne per Interrupt steuert
> ist es ein absolut bescheuertes und unbrauchbares
> Protokoll.

Das ist eher eine Frage, wie klug oder dumm man sich anstellt.

Wer mich kennt weiß, daß ich sehr gerne Interrupts verwende. Ich kann 
aber nicht behaupten, daß es mit 1-Wire irgendwelche Probleme gäbe, 
obwohl ich die fast auf jeder Platine einsetze.

Das einzige Problem ist, daß ein 1-Wire Transfer relativ lange dauert 
und damit die Mainloop manchmal zu langsam werden könnte. Dann kann man 
aber das 1-Wire im Hintergrund mit einem Timerinterrupt machen.


Peter

Autor: Bernhard S. (dk9nw)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

Von dir hatte ich vor kurzem irgendwo im Netz ein Programmbeispiel
aufgestöbert. Das hat mir viel geholfen einen 1 wire DS1820
Temperatursensor auf einer AVR-Ctrl Experimentierplanine zum Laufen
zu bekommen. Habe diese mit einem ATMega644p mit 20 MHz bestückt.

Da ich nur einen Sensor habe, brauche ich das SEARCH ROM [F0h] nicht,
sondern habe das READ ROM [33h] verwendet.

Außerdem habe ich in der function w1_bit_io() den zweiten delay
auf insgesamt 20 us erhöht. Das war vorher etwas wackelig. Mal gings
mal nicht.

Das Programm ist als Demo gedacht und noch nicht optimiert.

Gruß
Bernhard

https://www.mikrocontroller.com/index.php?main_pag...

http://home.tiscali.de/peterd/appl/soft/c51/thcloc...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.