@Sebastian: Mein Freundin meint, dass Männer die Frequenz nicht stört, weil sie schlecht hören, so wie die meisten Fliegen, manchmal sind sie auch ebenso lästig

Ich glaub, die will Krieg *Totenlied auffer Gitarre spiel *gg*

So, hier nun der fertige Quellcode ohne LED, so wies "verlangt" war
Code:
.include "m8def.inc"

.equ time0_1 = 256-20			;Damit wird der Timer0 vorgeladen
.equ time0_2 = 256-30
.equ time2 = 256-90				;Damit wird der Timer2 vorgeladen
.equ Summer = PB2				;Summer an B.2
.def tmp = r16					;Mein Universallregister
.def statusreg = r17			;Mein Statusregister
.def zaehlerSek = r18
.def statusSummer = r19			;Mein Status-Summer-Register

.org 0x000
	rjmp reset					;Interruptvektor "reset:"

.org OVF2addr
	rjmp timerSek

.org OVF0addr
	rjmp timerSummer			;Interruptvektor für Timer0 Überlauf, hier springt
								;das Programm hin, wenn der Timer überläuft

reset:
	;Stack einrichten
	ldi tmp, HIGH(RAMEND)			;HIGH-Byte der obersten RAM-Adresse
	out SPH, tmp
	ldi tmp, LOW(RAMEND)			;LOW-Byte der obersten RAM-Adresse
	out SPL, tmp

	sbi DDRB, Summer				;B.2 als Ausgang
	sbi PORTB, Summer				;B.2 auf HIGH stellen
	ldi statusSummer, 0b00000000	;statusSummer auf 0 setzen
	ldi zaehlerSek, 0b00000000		;Zähler auf 0 setzen

	;Timer Register werden belegt, hier Timer 0
	ldi tmp, (1<<CS02)				;Prescaler ist 512
	out TCCR0, tmp					;Register TCCR0 ist für den Prescaller zuständig
	ldi tmp, time0_1				;Hier wird der Timer vorgeladen
	out TCNT0, tmp

	;Timer Register werden belegt, hier Timer 2
	ldi tmp, (1<<CS22) | (1<<CS21) | (1<<CS20) ;Prescaler ist 1024
	out TCCR2, tmp					;Register TCRR2 ist für den Prescaller zuständig
	ldi tmp, time2					;Hier wird der Timer vorgeladen
	out TCNT2, tmp

	ldi tmp, (1<<TOIE0) | (1<<TOIE2);Hier werden Interrupts nach Timer0 Überlauf eingeschaltet
	out TIMSK, tmp					;Register TIMSK ist dafür zuständig

	sei								;Interrupts zulassen

loop:
	cpi zaehlerSek, 0b00010100	;Wenn Zählerregister != 40 ist
	breq pruefSek				;dann zu "pruefSek:" springen
	rjmp loop					;immer wieder zu "loop:" springen

pruefSek:
	clr zaehlerSek				;Zählerregister auf 0 setzen
	sbrs statusSummer, 0			;überspringe, wenn PIN 0 = 1 ist
	rjmp umschalten				;wenn PIN 0 = 0 ist, dann springe zu "umschalten:"
	ldi statusSummer, 0b00000000;wenn PIN 0 = 1 ist, dann PIN 0 auf 0 setzen
	rjmp loop					;wieder zurück zu loop

umschalten:
	ldi statusSummer, 0b00000001;wenn PIN 0 = 0 ist, dann auf 1 setzen
	rjmp loop					;wieder zurück zu "loop:"

timerSummer:
	in statusreg, SREG			;SREG sichern

	sbis PINB, Summer			;überspringe, wenn B.2 = 1 ist
	rjmp timerSummer1			;wenn B.2 = 0 ist, dann spring zu "umschalten1:"
	cbi PORTB, Summer			;wenn B.2 = 1 ist, dann B.2 auf 0 setzen
	rjmp timerSummer2			;zu "umschalten2:" springen

timerSummer1:
	sbi PORTB, Summer			;wenn B.2 = 0 ist, dann auf 1 setzen

timerSummer2:
	sbrs statusSummer, 0		;überspringe, wenn PIN 0 = 1 ist
	rjmp timerSummer3			;wenn PIN 0 = 0 ist, dann springe zu "timerSummer3:"
	ldi tmp, time0_1			;wenn B.5 = 1 ist, dann 1 KHz-Timer laden
	out TCNT0, tmp
	rjmp timerSummer4			;zu "timerSummer4:" springen

timerSummer3:
	ldi tmp, time0_2			;wenn B.5 = 0 ist, dann 4KHz-Timer laden
	out TCNT0, tmp

timerSummer4:
	out SREG, statusreg			;SREG wiederholen
	reti						;wieder zurück, wo du hergekommen bist

timerSek:
	in statusreg, SREG			;SREG sichern
	inc zaehlerSek				;Zählerregister um 1 erhöhen
	ldi tmp, time2				;Hier wird der Timer2 vorgeladen
	out TCNT2, tmp
	out SREG, statusreg			;SREG wiederholen
	reti
Gruß
The Happy Thomas