Grob funktioniert das ganze jetzt schonmal, allerdings kommt es beim
Timer1 leider zum flackern, wenn die LED entweder ein- oder
ausgeschaltet wird.
Sourcecode ist für den prozess folgender:
1 | while(g > min)//grün aus
|
2 | {
|
3 | OCR1B = g * 255;
|
4 | g--;
|
5 | _delay_ms(5);
|
6 | }
|
Ist die Rechnung g * 255 für den 8-Bit controller zu anspruchsvoll, oder
hat er vielleicht Probleme damit einen Timer 2 Mal zu benutzen? Mit dem
8-Bit Timer hab ich keine Probleme. Als ich noch nicht implementier
habe, das Timer 1 eine 16-Bit Quantisierung hat, lief alles ohne
Flackern, allerdings waren die LED's natürlicherweise nicht so Hell wie
die an Timer 0.
Falls es an der Doppelbelegung des Timer liegt, kann man den
Timercontrol an einem Pin auch ausschalten, oder schaltet man PORTB den
Output wieder auf high? Falls das nicht geht könnte man ja noch über 2
zusätzliche Transistoren, pro Farbe, das ganze steuern.
Viele Grüße, soda