Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .def tmp = r16
- .def mask = r20
- .def step = r21
- .def mtp = r22
- .equ delayCnt = 2
- .cseg
- rjmp reset
- .org 0x00C
- rjmp blink
- .org 0x010
- rjmp blink
- reset:
- ldi tmp, low(RAMEND)
- out SPL, tmp
- ldi tmp, high(RAMEND)
- out SPH, tmp
- ldi tmp, 0xff
- out DDRA, tmp
- out PORTA, tmp
- out PORTB, tmp
- ldi tmp, 0x00
- out DDRB, tmp
- ldi mtp, 0x00
- ldi mask, 0x01
- ldi step, 0x0a
- ldi tmp, (1 << PD5)
- out DDRD, tmp
- ldi tmp, (1 << COM1A0) | (1 << WGM10)
- out TCCR1A, tmp
- ldi tmp, (1 << WGM12) | (1 << CS12)
- out TCCR1B, tmp
- ldi tmp, (1 << TOIE1) | (1 << OCIE1A)
- out TIMSK, tmp
- ldi tmp, high(125)
- out OCR1AH, tmp
- ldi tmp, low(125)
- out OCR1AL, tmp
- sei
- main:
- sbis PINB, 0
- rcall smanji
- sbis PINB, 1
- rcall povecaj
- rcall delay
- rjmp main
- blink:
- in tmp, PORTA
- eor tmp, mask
- out PORTA, tmp
- reti
- smanji:
- out DDRD, mtp
- in tmp, OCR1AL
- cpi tmp, 0x02
- brlo end
- sub tmp, step
- end:
- out OCR1AL, tmp
- ret
- povecaj:
- out DDRD, mtp
- in tmp, OCR1AL
- cpi tmp, 0xfd
- brsh kraj
- add tmp, step
- kraj:
- out OCR1AL, tmp
- ret
- delay:
- clr r17
- clr r18
- ldi r19, delayCnt
- delay_loop:
- dec r17
- brne delay_loop
- dec r18
- brne delay_loop
- dec r19
- brne delay_loop
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement