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:
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();
Im Timercode steh dann folgendes:
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();
}
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.
Naja, ich hoffe, es hilft vielleicht jemanden.
Bääääär
Lesezeichen