.include "2313def.inc" .def tempd1 = r10 .def tempd2 = r11 .def tempd3 = r12 .def temp = r26 .def temp0 = r16 .def temp1 = r18 .def temp2 = r19 .def temp3 = r20 .def w1 = r21 .def w2 = r22 .def sprung0 = r17 .def sprung1 = r23 .def sprung2 = r24 .def sprung3 = r25 .equ sek = 7 .equ d1 = 6 .equ d2 = 5 .equ d3 = 4 .equ start = 65536 - 4839 .equ highvalue = high(start) .equ lowvalue = low(start) rjmp reset reti reti reti reti rjmp interupt reti reti reti reti reti reti reti reti main: mov tempd3, temp3 mov tempd2, temp2 mov tempd1, temp1 loop: ;Hier anzeige out PORTB, tempd3 ;D3 ausgeben sbi PORTB, d1 sbi PORTB, d2 rcall warten out PORTB, tempd2 ;D2 ausgeben sbi PORTB, d1 sbi PORTB, d3 rcall warten out PORTB, tempd1 ;D1 ausgeben sbi PORTB, d2 sbi PORTB, d3 rcall warten rjmp loop interupt: subi temp3, 0x80 subi temp2, 0x80 subi temp1, 0x80 mov tempd3, temp3 mov tempd2, temp2 mov tempd1, temp1 ldi temp, highvalue out TCNT1H, temp ldi temp, lowvalue out TCNT1L, temp inc temp0 inc sprung0 breq rucksetzen0 restart: ;ldi temp0, start ;out TCNT0, temp0 reti rucksetzen0: ldi temp0, 0 ldi sprung0, 135 inc temp1 inc sprung1 breq rucksetzen1 reti rucksetzen1: ldi temp1, 0 ldi sprung1, 246 inc temp2 inc sprung2 breq rucksetzen2 reti rucksetzen2: ldi temp2, 0 ldi sprung2, 250 inc temp3 inc sprung3 breq rucksetzen3 reti rucksetzen3: ldi temp3, 0 ldi sprung3,246 reti warten: ldi w1, 0 ldi w2, 200 schleife: inc w1 brne schleife inc w2 brne schleife ret reset: ldi temp1, RAMEND out SPL, temp1 ldi temp1, 0b11111111 ;PortB als Ausgang out DDRB, temp1 ldi temp1, 0b00000000 ;PortB ausschalten out PORTB, temp1 ldi temp, 1<