Ds1820 gibt mir immer gleichen Wert aus

OP #3909652
Lesenswert?
• ▲
▼
Hallo.
ich stehe vor einem Problem und tüftle jetzt schon ewig herum und kapier 
den Fehler nicht.

ich habe an einem ATMEGA8 am PortD.2 einen DS1820 angeschlossen mit 
welchem ich die Temparatur messen und auf einem Display ausgeben will. 
Das Programm habe ich teilweise übernommen und angepasst.
Nun bekomme ich bei fehlendem Sensor 127,9 Grad ausgegeben mit dem ich 
mich
ja noch anfreunden kann. Schliese ich den Sensor an gibt er mir 10.6 
Grad aus egal wie warm es ist.

Eine Verbindung zum Sensor besteht, ich habe nämlich den Resetpuls und 
den AntwortPuls sowie das Timing des Buses am Oszi nachgemessen und bin 
da ziemlich genau in den Datenblattangaben.

ich würde euch bitten mal über das Programm zu schauen vl fällt euch 
etwas auf.

Vielen herzlichen Dank im Vorraus

Marian
Angehängte Dateien:
OP #3909667
Lesenswert?
• ▲
▼
soll ichs euch lieber direkt einbinden? sind aber einige files. ich für 
meinen Teil hab nen virenscanner der up to date ist. also glaube ich 
nicht das die datei versäucht ist.

noch hinzufügen möchte ich der Prozessor läuft mit 1Mhz interner Takt
und der Sensor versorgt sich parasitär
Gast #3910200
Lesenswert?
• ▲
▼
fast gedacht!
Der Compiler gibt bei Deinem Programm Warnungen aus. Eine davon ist, das 
es in Problem mit F_CPU gibt.
F_CPU muss definiert sein, bevor die delay.h eingebunden wird.

Probier mal:

#define F_CPU 1000000L
#include <util/delay.h>
OP #3911602
Lesenswert?
• ▲
▼
Hallo :)

Danke für die schnelle Hilfe.
Das Problem ist gelöst :)

Ich habe nur einen Pullup und keinen wie im Datenblatt beschriebenen 
Strong Pullup berwendet. Jetzt ist ihm bei übermittlung der Daten der 
Strom ausgegangen.  Ich hab nun die Versorgung am Sensor angeschlossen 
und die Software läuft.
#3911796
Lesenswert?
• ▲
▼
Marian Guggenberger schrieb:
> Ich habe nur einen Pullup und keinen wie im Datenblatt beschriebenen
> Strong Pullup berwendet. Jetzt ist ihm bei übermittlung der Daten der
> Strom ausgegangen.

Der Sensor benötigt den Strong-Pullup nicht für die Datenübertragung, 
sondern nur während der eigentlichen Temperaturmessung. Für diese Zeit 
wird der 1-Wire-Pin des µC sinnvollerweise als Ausgang ung auf High 
geschaltet. Der AVR liefert dann also den höheren Strom über seinen Pin.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.