DS18S20 auslesen von daten

Gast #1387542
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
Angehängte Dateien:
Persönliche Seite
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-Tutorial:_IO-Grundlagen#Eingabe

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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.