Hmm, das ist jetzt zwar blöde, aber ich hab inzwischen eine Lösung gefunden, die ich hier kurz posten will:
Man hat eine Funktion, in der das Fading initialisiert wird:
Im Timercode steh dann folgendes:Code:// Die Originalhelligkeit wird in einer Hilfsvariable gespeichert und // dabei um 4 Bit nach links verschoben FadeValue = (LEDValue<<4); // Die Veränderung der Helligkeit pro Stufe ist dann: FadeStep = (LEDValue - DestinationValue); // Nun wird ein Counter initialisiert und der Timer gestartet FadeCounter = 0; StartTimer();
Das Ganze bedeutet eigentlich nur, dass man die Nachkommastellen in FadeStep umgeht, indem man alles "hochmultipliziert", also nach links verschiebt. Ich verschiebe um 4 Bit, also kann ich 16 Schritte machen, bis die Helligkeit übernommen wurde, Für 32 Schritte verschiebt man eben um 5 Bit hin und her.Code:FadeCounter++; // Helligkeitswert erhöhen FadeValue = FadeValue + FadeStep; // Helligkeit übernehmen und dabei wieder um 4 bit nach rechts verschieben SetLEDBrightness((FadeValue>>4)); // Timer beenden, wenn nötig if (FadeCounter == 16) { StopTimer(); }
Naja, ich hoffe, es hilft vielleicht jemanden.
Bääääär






Zitieren

Lesezeichen