Atmega32 und DS18B29 wollen nicht kommunizieren

OP #5595393
Lesenswert?

Hallo Freunde !

Wieder sitze ich vor einem, für mich grossem Rätsel :(

Ich habe bislang krampfhaft versucht, mit einem ATMega32(STK500-Board) 
einen DS18B20 auszulesen.

Das es damit nicht so einfach ist, wusste ich aus Internetrecherchen. 
Darum habe ich mir mal was "fertig gebackenes" an Source aus dem Web 
gesucht, aber vergeblich, kein Erfolg, keine Anzeige/Ausgabe seriell.

URL: 
http://davidegironi.blogspot.com/2014/09/a-ds18b20-1-wire-digital-thermometer.html

Ich habe mal ein Projekt(AVR-Studio 4) als Zip angehängt, vielleicht 
gibt es einen freundlichen Menscher der damal reinschaut. Alles an Code 
hier einzusetzen erschien mir zu viel.

Die Sensoren sind 100% intakt, habe sie mit einem Arduinoaufbau 
getestet.

Vielleicht hat ja wer auch einen brauchbaren Tip für ein anderes Projekt 
in Sachen AVR / DS18x20. Es sollte für ATmega 8/16/32/328/644 verwendbar 
sein.

Gruss und Dank

Gerhard
Angehängte Dateien:
#5595420
Lesenswert?

@ Gerhard H. (oderlachs)

>Die Sensoren sind 100% intakt, habe sie mit einem Arduinoaufbau
>getestet.

Wie sieht dein Hardwareaufbau aus? Hast du einen externen Pull-Up 
Widerstand?
Stimmt die Takteinstellung (Fuses) deines AVRs?

>Vielleicht hat ja wer auch einen brauchbaren Tip für ein anderes Projekt
>in Sachen AVR / DS18x20. Es sollte für ATmega 8/16/32/328/644 verwendbar
>sein.

Beitrag "Re: Onewire + DS18x20 Library"
OP #5595601
Lesenswert?

Hallo Freunde !

Vielen Dank für Eure vielen Hinweise. Ich habe nun ein neues Projekt mit 
Geany unter Linux erstellt.
Ich war überrascht das ich es dort hinbekommen habe, gut bei der 
Temperaturausgabe(seriell) muss ein wenig besseres Format raus kommen, 
es werden hinterm Komma auch nur Nullen angezeigt, aber es geht schion 
erst mal vom Prinzip.
Die Anregung und die 18b20- Dateiten habe ich mir wieder im Web bei 
Davide Gironi geholt.

Nun kann ich meine Bedürfnisse so nach und nach in die Code "einbasteln" 
.

Mit besten Grüssen und Dank

Gerhard
Im Anhang ist das Geany-Projekt zu finden

Nachtrag :
Jetzt auch mit Nachkommastellen von int auf double geändert:
1
double d = ds18b20_gettemp();
Angehängte Dateien:
#5595667
Lesenswert?

@Gerhard H. (oderlachs)

>Vielen Dank für Eure vielen Hinweise. Ich habe nun ein neues Projekt mit
>Geany unter Linux erstellt.
>Ich war überrascht das ich es dort hinbekommen habe,

Und wo liegt jetzt der Fehler? Wahrscheinlich in falschen Einstellungen 
im AVR-Studio?

>Jetzt auch mit Nachkommastellen von int auf double geändert:

>double d = ds18b20_gettemp();

Loser! Für so einen Popelmosch nimmt man Festkommaarithmetik und 
gut.
OP #5595691
Lesenswert?

Welche Einstellungen sollen falsch sein. Ich programmiere damit schon 
ewig  und weiss mich da Bescheid(??). Aber ich bin kein Herrgott, mann 
lernt ja nie aus.

Dann hätte ja das Projekt unter Linux/Geany auch  funktionieren 
müssen/sollen, wenn das neue Projekt dort funzt.

>Loser! Für so einen Popelmosch nimmt man Festkommaarithmetik und gut.

Fehler sind da, um gemacht zu werden...und auch daraus zu lernen.
Es soll sogar Menschen geben, die nicht fehlerfrei sind, ICH bin EINER 
davon !

Gruss und Dank
Gerhard
#5595799
Lesenswert?

@Gerhard H. (oderlachs)

>Welche Einstellungen sollen falsch sein.

Z.B F_CPU

> Ich programmiere damit schon
>ewig  und weiss mich da Bescheid(??).

Wenn deine Progammierkenntnisse so gut wie deine Deutschkenntnisse sind, 
dann wird das eher eng . . .

> Aber ich bin kein Herrgott, mann
>lernt ja nie aus.

Manche lernen's nie.

Man KÖNNTE auch mal Fehlermeldungen lesen und ernst nehmen.

c:/programme/winavr-20100110/lib/gcc/../../avr/include/util/delay.h:85:3 
:  warning: #warning "F_CPU not defined for <util/delay.h>"

Schon dumm, denn so stimmen deine Verzögerungszeiten in ds1820.c keine 
Sekunde (sic!)

Wenn man aber im Menu Project/Configuration Options unter Frequency die 
echte Taktfrequenz des AVRs einträgt, könnte das was werden.

#define  F_CPU  3686400UL

macht man aus DS18x20Demo.c raus.
Beitrag #5595847 wurde von einem Moderator gelöscht.
OP #5595851
Lesenswert?

Du scheinst ja Herr Universum zu sein ??? Wer schreibt heute noch
hochdeutsch ?


Behalte Deine Weisheiten für Dich, ich werd hier nicht mehr fragen...
Zum Anderen, lese den Quelltext richtig, besonders bei der F_CPU
Definition.
In der main steht zu Begin:


#ifndef F_CPU
#define F_CPU  3686400UL  //STK500
// #define F_CPU  8000000UL  // ATM128 Board
// #define F_CPU  16000000UL // beliebig, auch Arduino
#endif  //F_CPU

Warum soll die dann später includierte "delay.h" meckern...bei mir tut
sie es nicht....und das Programm läuft auch ohne Deine so spez. zitierte
Angabe:

>Wenn man aber im Menu Project/Configuration Options unter Frequency die
>echte Taktfrequenz des AVRs einträgt, könnte das was werden.

Das zum Abschluss, also wer Lesen kann ist voll im Vorteil.

Und Tschüss..
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren