
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.
Lesezeichen