Notes
Notes - notes.io |
.org 0x000 rjmp reset ;skok do etykiety reset
.org 0x002 rjmp EXT_INT0 ;skok do przerwania INT0
reset:
ldi r16,LOW(RAMEND) ;inicjalizacja stosu
out SPL,r16;inicjalizacja stosu
ldi r16,HIGH(RAMEND);inicjalizacja stosu
out SPH, r16;inicjalizacja stosu
sei ;wlaczenie przerwan
ldi r16,(1<<ISC01) ;ustawienie sygnaly wyzwalajacego przerwanie INT0- jakakolwiek zmiana logiczna wywoluje przerwanie
out MCUCR,r16 ;przsłanie do MCUCR r16
ldi r16,(1<<INT0) ;zezwolenie na przerwanie INT0
out GICR, r16 ;przesłanie do GICR zawartości r16
call config ;wywolanie procedury config
rjmp START
START:
//out PORTC,r25 ; rejest r25 jako wyjscie
ldi r21,0x01 ;wrzucenie wartosci 00000001 na rejestr r21
ldi r22,7 ;wrzucenie wartosci 7 na rejestr r22
call prawo
//out PORTC,r25 ; rejest r25 jako wyjscie
ldi r21,0x80 ;wrzucenie wartosci 00000001 na rejestr r21
ldi r22,7 ;wrzucenie wartosci 7 na rejestr r22
call lewo
rjmp START
EXT_INT0:
cli;wylaczenie przerwan
in r24,SREG ;odczytanie SREG do r24
push r24;zapisanie rejestru r24 na stos
//push r25;
ldi r23,0b10000001;w srodek rejestru r23 wartosc 10000001
OR r23,r21 ;suma logiczna r21 do r23
out PORTA,r23 ; rejest r23 jako wyjscie
call delay2
inc r25 ;zwiekszam o jeden licznik przerwan
out PORTB,r25 ; rejest r25 jako wyjscie
//pop r25
pop r24;odczytanie r24 ze stosu
out SREG,r24;przesłanie rejestru SREG z r24
reti;powrot z procedury z wlaczeniem przerwan
delay:
;cykl trwajacy 150ms
push r18 ;umieszczenie rejestru na stosie
push r19;umieszczenie rejestru na stosie
push r20;umieszczenie rejestru na stosie
ldi r18,3
ldi r19,45
ldi r20,216
L5:dec r20
brne L5
dec r19
brne L5
dec r18
brne L5
rjmp PC+1
pop r18;uwolnienie rejestru ze stosu
pop r19;uwolnienie rejestru ze stosu
pop r20;uwolnienie rejestru ze stosu
ret ;zakonczenie procedury
delay2:
;cykl trwajacy 150ms
push r18 ;umieszczenie rejestru na stosie
push r19;umieszczenie rejestru na stosie
push r20;umieszczenie rejestru na stosie
ldi r18,1
ldi r19,15
ldi r20,116
L6:dec r20
brne L6
dec r19
brne L6
dec r18
brne L6
rjmp PC+1
pop r18;uwolnienie rejestru ze stosu
pop r19;uwolnienie rejestru ze stosu
pop r20;uwolnienie rejestru ze stosu
ret ;zakonczenie procedury
config:
clr r17 ;wypelniam zerami r17
out PORTA,r17 ;wypelniam PORTA zerami
ser r18;wypelniam jedynkami r17
out DDRA,r18; wszystkie linie PORTA jako wyjście
out DDRB,r18; wszystkie linie PORTA jako wyjście
ldi r25,0b00000000 ;w rejsetr r17 daje 1- do liczenia przerwan
cbi DDRD, 2 ;ustawienie 0 linii portuD jako wejscie
sbi PORTD,2 ;dolaczenie rezystora podciagajacego
ret
prawo:
out PORTA,r21 ;ustawienie wartosci rejestru r21 jako wyjscie portuA
lsl r21;przesuniecie bitowe w lewo
call delay;wywolanie opozonienia
dec r22;zmniejszenie wartosci rejstru r22
brne prawo ;powoduje wykonanie petli
ret
lewo:
out PORTA,r21 ;ustawienie wartosci rejestru r21 jako wyjscie portuA
lsr r21;przesuniecie bitowe w prawo
call delay;wywolanie opozonienia
dec r22;zmniejszenie wartosci rejstru r22
brne lewo ;powoduje wykonanie petli
ret
|
Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 12 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team