Gast
#448995
Hallo, bin neu beim uC... möchte 8 Leds unabhängig voneinander dimmen, geht das mit Atmega8 ? Villeicht ein Beispiel mit C ?
|
Anzeige
|
8 LED dimmen unabhängig voneinander
Gast
#448995
Hallo, bin neu beim uC... möchte 8 Leds unabhängig voneinander dimmen, geht das mit Atmega8 ? Villeicht ein Beispiel mit C ?
Gast
#448999
> geht das mit Atmega8 ? ja > Villeicht ein Beispiel mit C ? ja, auch mit C.
Gast
#449008
has jemand ein Beispiel in C (quelle Code)?
Gast
#449015
>has jemand ein Beispiel in C (quelle Code)?
Guck doch mal in der Codesammlung.
Gast
#449016
Dein Stichwort ist Software Pulsweitenmodulation (Soft-PWM). Gibt dazu jede Menge Beispiele für ATMega sowohl in ASM als auch in C. Einfach mal nach googeln. Hier ein C-Beispiel mit AT89C2051: Beitrag "PWM-Lauflicht" Peter Kannst du einen Timer ansteuern, so dass er dir regelmäßige Interrupts auslöst? Das ist dein erstes Ziel. Der Rest ist dann leicht. Du baust dir softwaremässig ein PWM auf: Für jede LED gibt es eine unsigned char Variable, die einen Grenzwert darstellt. In deiner Interruptfunktion zählst du einen Zähler hoch. Dann wird für jede LED dieser Zähler mit dem Grenzwert für diese LED verglichen. Ist der Zähler größer als der Grenzwert, schaltest du die LED aus, andernfalls schaltest du sie ein. Und das wars dann schon.
Jetzt musst du nur noch dafür sorgen, dass die ISR vom Timer oft genug aufgerufen wird. Aber das ist dein Teil der Übung :-) Leds[x], x 0 bis 8, kannst du dann Werte von 0 bis 100 zuweisen. Bei 0 ist die Led komplett dunkel, bei 100 leuchtet sie am hellsten. Zwischenwerte entsprechen einer Dimmung. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|