Näide 3
Näide 3:
;Seadistada pordi B väljaviigud
sisendiks ja proovida port B kaudu infot välja saata
;---------------------------------------------------------------------------------------------------------------------------------
ldi r16, 0x00 ;registrisse r16 laetakse 0x00 ehk
0b00000000
out 0x04, r16 ;registri
r16 sisu kopeeritakse registrisse 0x04 ehk DDRB registrisse
;sisend-väljundpordi
poole saab pöörduda out käsuga. Ldi käsuga ei saa otse DDRB registrisse
0x00’i laadida, sest igal käsul on kindel aadresside vahemik mille ulatuses
saab seda käsku kasutada. Sisend-väljundregister DDRB ei kuulu aadressi
vahemikku kus töötab käsk ldi.
; nüüd on port
B kõik väljaviigud sisendid
;-----------------------------------------------------------------------------------------------------------------------------------
ldi r16, 0x01 ;registrisse r16 laetakse 0x01 ehk
0b00000001
out 0x05, r16 ;registri
r16 sisu kopeeritakse registrisse 0x05 ehk PORTB registrisse
;sisend-väljundpordi
poole saab pöörduda out käsuga. Ldi käsuga ei saa otse DDRB registrisse
0x01’i laadida, sest igal käsul on kindel aadresside vahemik mille ulatuses
saab seda käsku kasutada. Sisend-väljundregister PORTB ei kuulu aadressi
vahemikku kus töötab käsk ldi.
;------------------------------------------------------------------------------------------------------------------------------------
Loop: ;see programmi osa ei oma otseselt mingit
mõtet, see on vajalik selleks, et oleks näha kuna ülemise programmi osa
täitmine lõppeb, siia jääb programmi täitmine lihtsalt seisma.
rjmp Loop ; see on lõputu tsükkel
;------------------------------------------------------------------------------------------------------------------------------------
|