mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fusebits beim Mega128


Autor: Klaus Möhrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich krieg hier ne Krise. Ich versuche einen Temperatursensor (DS18b20) 
auszulesen. Ich krieg aber nur Müll angezeigt. (150°C zuviel) Ich habe 
die Routine einfach aus meinem Programm vom Mega8 kopiert. Da hats 
funktioniert. Nun bin ich auf die Idee gekommen, dass die Fusebits 
eventuell nicht stimmen und somit auch das Timing nicht. Im Datenblatt 
werde ich leider nicht schlau. Eingestellt ist im Moment 1111. Ich habe 
zwei Quarze dran. Einmal einen Uhrenquarz und dann einen 14,7456Mhz 
Quarz.
Ist die Einstellung dann richtig???

Gruß Klaus

Autor: Klaus Möhrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht sollte ich auch noch Fragen, was es noch für Möglichkeiten 
gibt, dass 150°C zuviel angezeigt werden???
Kann man den Quarz irgendwie kontrollieren???

Autor: Pointer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Programmcode währe mal nicht schlecht für's erste.

Autor: Klaus Möhrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, na klar der Code:

Config 1wire = Porta.0
Dim Sc(9) As Byte
Dim T As Integer
Dim T1 As Integer
Dim T6 As Single
Dim T4 As String * 10
Dim Temp As Byte

Do
   Wait 1
   1wreset
   1wwrite &HCC
   1wwrite &H44
   Waitms 300
   1wreset                                              'reset
   1wwrite &HCC                                         'read ROM 
command
   1wwrite &HBE                                         'read ROM 
command
   Sc(1) = 1wread(9)
   If Sc(9) = Crc8(sc(1) , 8) Then

        Temp = Sc(1) And 1
      If Temp = 1 Then Decr Sc(1)
      T = Makeint(sc(1) , Sc(2))
      T = T * 50
      T = T - 25
      T1 = Sc(8) - Sc(7)
      T1 = T1 * 100
      T1 = T1 / Sc(8)
      T = T + T1
      T = T / 10
      T6 = T / 10
      T4 = Fusing(t6 , "#.#")


Autor: Pointer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prog. Du in Bascom?
Wenn ja, da kenn ich mich leider nicht aus.

Autor: Klaus Möhrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, in Bascom. Aber wie gesagt, beim Mega 8 funktioniert es ja auch. Ich 
vermute ein anderes Problem. Nur welches!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du evtl. das gleiche Problem wie hier:
http://www.roboternetz.de/phpBB2/viewtopic.php?t=29401
Ist auch ein DS18B20 mit 150° zuviel.

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vergrößer mal die Wartezeit "waitms...", der Sensor brauch >750ms für 
eine Messung bei voller Auflösung - und du hast ja scheinbar (Ich 
weigere mich, mich mit Basic zu befassen und werde deshalb nicht 
nachschauen, was die 1wire Funktionen machen, wäre also ein Tipp für 
dich ;) ) den Sensor nicht anders Konfiguriert.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Joerg: Vorsicht, von Basic bekommt man Ausschlag.

@Klaus: Du benutzt hier offensichtlich Code, der für den DS1820 bzw. 
DS18S20 gedacht ist. Der kann nur 9bit und muss für die 1/16° Auflösung 
so rechnen.
Dein DS18B20 gibt dir das Ergebnis direkt in 12-bit aus, du musst nur 
noch durch 16 dividieren, dann bist du da.

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>"Vorsicht, von Basic bekommt man Ausschlag."
@"Gast" von BASIC wahrscheinlich nicht aber offensichtlich vom 
BASCOM-Manual, wenn es anders wäre würde ja irgendjemand, der in Bascom 
programmiert(bzw. damit anfängt) da mal reinschauen ..

(WARNUNG: dieser Post enthält eine riesen Portion Sarkasmus, Personen 
die damit nicht umgehen können, sollten besser garnicht antworten ;-) )

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Manual ist bei manchen Befehlen nicht gerade aussagekräftig. Man 
kann dann nur versuchen, aus Code von anderen Nutzern Schlüsse zu 
ziehen.

Richtig gut hingegen ist das Microcontroller Lehrbuch von Roland Walter.
Das ist eine lohnende Investition.

(Dieser Beitrag enthält keinen Sarkasmus) ;-)

MfG Paul

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.