18B20 an AVR 1Wire Bitte helft mir die Lösung selbst herauszufinden

OP #882995
Lesenswert?

Hallo


Ich beschäftige mich schon einige zeit mit den AVR's

Heute wollte ich mal einen Temperatursensor 18B20 von Dallas-Maxim
ansteuern und über UART ausgeben.

Da ich bis jetzt nur die basics von assembler kann also Port high low 
etc..
hab ich mir für den UART den beispiel code von hier geholt.

Funktioniert einwandfrei.

Da ich aber nun dachte, alles copy paste das kanns doch nicht sein
wollte ich mir die ansteuerung des 18B20 selbst erarbeiten.

Mit grosser freude kann ich nun sagen das ich ihn initialisieren konnte.
Doch leider ist hier auch schon ende....

Ich weiss nämlich nicht wie ich Hexdezimal CC zum Sensor übermittle
Fertigen Code möchte ich nicht... wenns geht wäre ich froh wenn ihr
mir tipps gebt wie man das am einfachsten löst.

Mein derzeitiger Code:
1
  ;1Wire Initialisieren
2
  ldi r18, 0xFF
3
  out DDRB, r18            ;PortB als ausgang
4
  out PORTB, r18
5

6
  cbi PORTB, 0            ;low setzen
7
  rcall wait480            ;480us lang Low setzen
8
  sbi PORTB, 0            ;High setzen
9

10
  ldi r18, 0x00            ;PortB als eingang
11
  out DDRB, r18
12

13
  rcall wait240            ;100us Warten
14
  sbic PINB, 0            ; Prüfen ob pin0 = low = erfolgreich initialisiert
15
  rjmp false
16
  rjmp true            
17

18

19
false:
20
ldi r18, 0xFF
21
out DDRC,r18
22
out PORTC,r18
23
cbi PORTC,1
24
rjmp loop1
25
 
26

27
true:
28
ldi r18, 0xFF
29
out DDRC,r18
30
out DDRB, r18
31
out PORTB, r18
32
out PORTC,r18
33
cbi PORTC,2
34
rjmp stop
35

36
stop:
37
rjmp stop

hier noch das Datenblatt 
http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf

danke schonmal

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