Andreas: ja, ich habe ne Erinnerung auf dem Desktop, bin aber noch nicht dazu gekommen, erst mal wieder zamstöpseln, DMX-Pult aus dem Lager holen... aber gute Idee, hier anbei mal mit Adresse 17, schau' doch mal, ob das funktioniert...
Phillux: Ja, wenn ich mal Zeit habe mach' ich die Beschreibung noch...
geht mir auch so, asm finde ich irgendwie verständlicher - für C gibt's halt mehr fertige Sachen, da beschäftige ich mich gerade damit, ich glaube, wenn man's mal kapiert hat, ist das auch ganz cool.
Die globale Geschwindigkeit wird in der Timer-ISR (ISR_Timer0OVF.inc) eingestellt, entscheidend ist die Zeile:
hier kannst Du andere Werte nehmen, z.B. mit 0b00011111 wird's durch 32 geteilt, also halbe Geschwindigkeit im Vergleich zu vorher - aber dann natürlich bei allen Programmen!
wenn nur der Fader langsamer werden soll, müsstest Du in der Fade-Routine noch nen Teiler einbauen...
die entscheidene Stelle ist hier (in jedem Modul so):
sbrs Flags, FL_Tick ; Zeitsegment abgelaufen...?
rjmp _Baumarkt_Ende ; nein, Modul überspringen
cbr Flags, (1<<FL_Tick) ; ja, Flag löschen
die Timer-ISR setzt regelmäßig das Flag "FL_Tick" für die Zeitbasis - immer wenn es gesetzt ist, macht der Fader einen Schritt weiter.
Du kannst hier in dieser Routine noch mal die Ticks zählen, also z.B. dass nur alle 3 Ticks ein Schritt weiter gemacht wird = 1/3 so schnell...
das geht dann aber mit dem Tiny2313 nicht mehr, weil der ist mit der letzten SW-Version echt *randvoll*