Hallo Jörg.

Zugegeben - mein Fehler ^^. Du siehst ja nur einen Teilausschnitt.

Der fixe Grundwert war vorher ja die Schrittpause, jetzt ist es aber die "Wartezeit". Die Wartezeit stellt dabei das Grunddelay für die neue Funktion bereit, nämlich die LED bei gleich bleibender Helligkeit in unterschiedlichen Geschwindigkeiten zu faden. Angenommen, der "CASE 0"-Wert "6" steht für 6 Sekunden, so fadet die LED dann in 6 Sekunden einmal von hell nach dunkel und wieder nach hell. Im "CASE 3" steht der Wert 12 - die LED fadet dann doppelt so langsam, also in 12 Sekunden (fiktive Werte).

Dieser Grundwert stellt nun die Basis für die Dimmfunktion dar. Normal zählt der PWM-Zähler ja von 1023 nach Null und wieder zurück. Beim Dimmen wird der Wert aber vorgeladen, sagen wir auf 898 in "CASE 5". Dadurch würde die Zeit nun aber auch 5 mal schneller faden als sie soll, denn der Zeit-Basiswert bleibt ja im Grunde der gleiche, und genau das wollte ich ja kompensieren.
Darum habe ich die kleine Multiplikation ans Ende gesetzt. Im CASE 0 gibt es noch keine Dimmung, der Zähler zählt von Null angefangen, wodurch der Zeitwert direkt übernommen werden kann.
Die weiteren Ansprungmarken CASE 1-5 werden dann tangential zum Basiswert multipliziert (Quadrate von Faktor 1,5). Dadurch sollte die komplette Fadingzeit selbst beim Dimmen immer gleich der gewählten Geschwindigkeitskonstante sein.

Momentan ist es noch ein Trockenversuch, da ich leider mein Testboard nicht bei habe. Kann ich erst am WE ausprobieren ^^. Sollte dann aber auch die letzte Funktion sein, die ich in das Programm einbaue. Maximal, dass ich noch ein paar Farben hinzufüge, mehr aber auch nicht, sonst ist es zu überladen und hat das Flair käuflicher Disko-LED-Stripe-Steuerungen



LG - Maik