Forum: Mikrocontroller und Digitale Elektronik DS18S20 auslesen von daten


von Klose (Gast)


Angehängte Dateien:

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

von Stefan B. (stefan) Benutzerseite


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-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.

von Route_66 (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.