Gast
#1750283
Guten Abend! Ich beschäftige mich seit kurzer Zeit mit AVRs. Ich möchte auf lange Sicht gerne eine Farbmischung mittels einer RGB Led programmieren. Nun habe ich erstmal angefangen einen Chip(also eine Farbe der LED) mit SoftPWM heller und dunkler zu faden. Leider flackert und ruckelt die Farbmischung sehr stark(vorallem in "dunkleren" Bereichen). Hardware(hier sollte alles richtig sein): Als Hardware habe ich einfach den entsprechenden Pin der LED mit Vorwiederstand an den Portpin des AVR angeschlossen. Software/Pseudocode(ist hier ein Denkfehler?): Taktfrequenz vom Atmega ist 1MHz Ich betreibe den Timer im normalen Modus mit Prescaler 1. Der Timer löst einen Overflow Interrupt aus. In der Interruptroutine wird eine Variable(z.B. "heller") hochgezählt solange sie kleiner als z.b. 255 ist. Im Hauptprogramm wird nichts gemacht außer die Led anzuschalten wenn TCNT0(der aktuelle Timerwert) kleiner als "heller" und sie auszuschalten wenn TCNT0 größer als "heller" ist Es wäre super, wenn mir jemand weiterhelfen kann. P.S.: Mein Problem ist nicht, dass die LED sehr schnell hell wird und dann hell bleibt, was ja an der Kennlinie des menschlichen Auges liegt! Nochmal genau wie sich die LED verhält: - erst blitzt die LED immer nur kurz auf, flackert also langsam - ab einer gewissen Helligkeit ist das Flackern weg und die LEd leuchtet relativ homogen, aber die Helligkeitssprünge sind abrupt/ sprunghaft und nicht flüssig Vielen Dank für eure Hilfe