Bääääär
18.02.2009, 21:38
Hallo alle zusammen!
ich sitze hier momentan an einer RGB-LED Steuerung. Dabei ergibt sich folgendes Problem: Ich dimmer hier per Software-PWM LEDs mit 6bit Farbtiefe. Ich möchte nun zwischen zwei Farben faden. Dazu könnte ich einfach die Farben nacheinander je um 1 erhöhen oder erniedrigen und damit aufhören, wenn die gewünschte Farbe erreicht ist. Das hat aber den Nebeneffekt, dass nicht alle Farben zur gleichen Zeit ihren gewünschten Wert erreichen. Ich will, dass die LEDs über eine bestimmte Anzahl von Schritten ihre neue Helligkeit erreichen, sprich bei jeden Schritt genau um soviel erhöht werden, dass sie am Ende ihre gewünschte Farbe erreicht haben. Dazu gehe ich wie folgt vor:
Ich errechne die Differenz zwischen momentaner und gewünschter Helligkeit und teile diese durch die Anzahl der Schritte (nennen wir sie "n"). Dabei erhalte ich den zu erhöhenden oder zu verringernden Wert pro Schritt. Dann starte ich einen Interrupt und lasse diesen n-mal durchlaufen. Dabei addiere ich für jede LED diesen errechneten Wert. Rein rechnerisch müssten nach den n Schritten alle LEDs ihre gewünschte Helligkeit erreicht haben.
Das ist aber nicht der Fall, und je öfter ich dieses Fading wiederhole, desto mehr werden die Abweichungen sichtbar (ziemlich heftig sogar). Ich habe gelesen, dass die Division sehr ungenau ist. Welche Möglichkeit habe ich denn noch, die LEDs zu dimmen?
Vielen Dank,
Bääääär
ich sitze hier momentan an einer RGB-LED Steuerung. Dabei ergibt sich folgendes Problem: Ich dimmer hier per Software-PWM LEDs mit 6bit Farbtiefe. Ich möchte nun zwischen zwei Farben faden. Dazu könnte ich einfach die Farben nacheinander je um 1 erhöhen oder erniedrigen und damit aufhören, wenn die gewünschte Farbe erreicht ist. Das hat aber den Nebeneffekt, dass nicht alle Farben zur gleichen Zeit ihren gewünschten Wert erreichen. Ich will, dass die LEDs über eine bestimmte Anzahl von Schritten ihre neue Helligkeit erreichen, sprich bei jeden Schritt genau um soviel erhöht werden, dass sie am Ende ihre gewünschte Farbe erreicht haben. Dazu gehe ich wie folgt vor:
Ich errechne die Differenz zwischen momentaner und gewünschter Helligkeit und teile diese durch die Anzahl der Schritte (nennen wir sie "n"). Dabei erhalte ich den zu erhöhenden oder zu verringernden Wert pro Schritt. Dann starte ich einen Interrupt und lasse diesen n-mal durchlaufen. Dabei addiere ich für jede LED diesen errechneten Wert. Rein rechnerisch müssten nach den n Schritten alle LEDs ihre gewünschte Helligkeit erreicht haben.
Das ist aber nicht der Fall, und je öfter ich dieses Fading wiederhole, desto mehr werden die Abweichungen sichtbar (ziemlich heftig sogar). Ich habe gelesen, dass die Division sehr ungenau ist. Welche Möglichkeit habe ich denn noch, die LEDs zu dimmen?
Vielen Dank,
Bääääär