.include "m8def.inc" ldi r16, 0xff out DDRB, r16 ldi r16, 0b01010101 out PORTB, r16 end: rjmp end |
.include "m8def.inc" ldi r16, HIGH (RAMEND) out SPH, r16 ldi r16, LOW (RAMEND) out SPL, r16 ldi r16, 0xff out DDRB, r16 ldi r16, 0x00 loop1: com r16 out PORTB, r16 com r16 rcall sleep inc r16 rjmp loop1 end: rjmp end sleep: push r16 push r17 ldi r16, 0xff sleep_loop1: ldi r17, 0xff sleep_loop2: dec r17 brne sleep_loop2 dec r16 brne sleep_loop1 pop r17 pop r16 ret |
.include "m8def.inc"
.org 0x000
rjmp RESTART
;; addresse der externen Interrupts
.org INT0addr
rjmp ExtInt01
.org INT1addr
rjmp ExtInt02
RESTART:
ldi r16, HIGH (RAMEND)
out SPH, r16
ldi r16, LOW (RAMEND)
out SPL, r16
ldi r16, 0xff
out DDRB, r16
ldi r16, 0x00
out DDRD, r16
;; bits setzen - interrupts - fuer extern ein, Flanke, ...
ldi r16, (1 << ISC01) | (1 << ISC11)
out MCUCR, r16
ldi r16, (1 << INT0) | (1 << INT1)
out GICR, r16
sei
end: rjmp end
ExtInt01:
ldi r16, 0xff
out PORTB, r16
reti
ExtInt02:
ldi r16, 0x00
out PORTB, r16
reti
|