Zitat Zitat von izaseba
Thomas, jetzt ganz langsam,
Du hast ein chaos im Deinem Programm, da blikt wirklich kein Mensch meh durch....
Sorry

pruefTonleiter:
clr zaehlerSek ;Zähler auf 0 setzen
rjmp ladeTon ;nächsten Ton laden
rjmp main ;sonst wieder zurück zu "main:"

wozu springst Du nach ladeTon,könnte das nicht direkt drunter ?
und rjmp main
Da kommt er wohl nie hin , oder ?
Ja, hast recht, hab ich grad verbessert. Aber ich denk, die Hauptsache ist doch erstmal dass es funktioniert und dann kann man an der Übersicht arbeiten, oder?
In C++ hatte ich nie Probleme mit der Übersicht, versteh ich nicht...

TonAus:
sbiw ZL,1 ;Z um 1 erniedrigen
ldi tmp, 0 ;Timer mit 0 laden, damit er nicht mehr abspielt
out TCNT0, tmp
rjmp main ;wieder zurück zu "main:"

wozu Zl -1 ?
bist Du Dir sicher daß 0 den Timer wirklich abschaltet?
Das ZL-1 hab ich gemacht, damit er beim nächsten mal keinen Müll mehr einliest, sondern immer wieder die 0 aus der DB tonleiter.

Und das 0 den Timer abschaltet, dacht ich, jo, denn was soll er denn noch hochzählen, wenn ich den Timer mit 256-256 vorlade? Hmm...

[edit]
Das hier stoppt den Timer.
Code:
ldi tmp, 0b00000000			;Timer stoppen
	out TCCR0, tmp
Datenblatt Seite 70 hilft.