www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DS18S20 auslesen von daten


Autor: Klose (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Problem mit dem DS18S20

Das Senden von befehlen klappt sehr gut.
Reset funktioniert, bekomme rückmeldung. 44h auch, Spannung geht auf 2 V 
runter danach. Aber das einlesen funktiniert nicht richtig. bekomme nur 
FFh raus.

Habe das Signal mal mit Oszi aufgenommen... Dir Routine zum lesen heisst

TEMPE2:

  ldi r27,0x02  ; Zähler
  ldi r28,0

  Ldi r22,0  ; LOW daten
  Ldi r23,0  ; HIGH daten
  Ldi r24,0  ; Zähler länge der Nachricht
  ;SBI PORTB,1

TEMP2:
  ldi r16,0xFF
  CBI PORTD,2
  out DDRD, r16  ; D - EINGANG
  CBI PORTD,2
  rcall W1ms
  SBI PORTD,2
  rcall W1ms
  ldi r16,0
  CBI PORTD,2
  out DDRD, r16  ; D - EINGANG
  Inc r24      ; Zähler um eins erhöhen
  rcall W15ms
  inc r22
  sbic PIND,2    ; wenn LOW-Flanke
  dec r22
  CLC
  ROR r23
  ROR r22
  ;SBI PORTB,4
  RCALL W90ms
  rcall W15ms
  rcall W15ms

A1:  CPI r24,16    ; Zähler alle Daten empfangen
  BRGE B1
  Rjmp TEMP2    ; wenn nein dann springe zu anfang
B1:
  ;SBI PORTB,0
  ret

so müsste das doch eigentlich funktionieren oder übersehe ich was

Wäre gut wenn mir da jemand weiterhelfen könnte.

DANKE

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem Diagramm fehlt die Zeitachse und in deinem Codefetzen der Code 
für die Wartefunktionen und die Info mit wievielen MHz dein AVR rennt. 
Beides zusammen verhindert eine ausfürhliche Problemanalyse.

Abgesehen davon könntest du die Problemanalyse vereinfachen, wenn du 
statt Registernamen symbolische Namen verwenden würdest.

Dann diese Stelle

>  ldi r16,0xFF
>  CBI PORTD,2
>  out DDRD, r16  ; D - EINGANG

Jetzt ist der PORTD auf AUSGANG konfiguriert, anders als in deinem 
Kommentar!
http://www.mikrocontroller.net/articles/AVR-Tutori...

Insgesamt wäre ein Flussdiagramm der Programmlogik hilfreicher als der 
Codefetzen. Mir scheint, dass diese im Argen liegt und die ungünstige 
Codierung das Problem dann verschlimmert.

Autor: Route_66 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeitachse ist zwar ungewöhnlich dargestellt, aber doch da???
wenn die Zeiten in Sekunden sind, stimmt irgendwas beim Timing nicht!

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.