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:
| Code : |
;1Wire Initialisieren
ldi r18, 0xFF
out DDRB, r18 ;PortB als ausgang
out PORTB, r18
cbi PORTB, 0 ;low setzen
rcall wait480 ;480us lang Low setzen
sbi PORTB, 0 ;High setzen
ldi r18, 0x00 ;PortB als eingang
out DDRB, r18
rcall wait240 ;100us Warten
sbic PINB, 0 ; Prüfen ob pin0 = low = erfolgreich initialisiert
rjmp false
rjmp true
false:
ldi r18, 0xFF
out DDRC,r18
out PORTC,r18
cbi PORTC,1
rjmp loop1
true:
ldi r18, 0xFF
out DDRC,r18
out DDRB, r18
out PORTB, r18
out PORTC,r18
cbi PORTC,2
rjmp stop
stop:
rjmp stop |
|
hier noch das Datenblatt
http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf
danke schonmal