C code

Gast #449700
Lesenswert?

servus Leute,

2 Leds sollen einzel gedimmt werden -Stufenlos-, in x= 10min  (maxmal 
Leuchtstärke) dann in 5 min runter auf 0.
benutze dafür Amega8 ( PD0 und PD1 als ausgänge ).
Atmega8 ist an einen 4 Mhz Oszillator angeschloßen.

brauche ich dafür 2 timer ,einer für pwm erzeugung ,2. für dauer der 
dimmen...???
#449710
Lesenswert?

Wenns nur 2 Leds sind, ist das wahrscheinlich die
einfachste Lösung.
Ein Timer macht selbstständig die PWM, der 2. verändert
in regelmässigen Abständen die Einstellung des ersten.

Bei mehr Leds, oder wenn du die PWM Ausgänge des µC nicht
mehr frei hast, muss man halt eine software PWM aufsetzen.
Dann reicht auch 1 Timer. Der gibt dann einfach nur eine
Zeitbasis vor, aus der alles andere abgeleitet wird.
Gast #449718
Lesenswert?

> 2 Leds sollen einzel gedimmt werden -Stufenlos-,

Mit digitaler Elektronik wirst du's kaum stufenlos schaffen.

> in x= 10min  (maxmal Leuchtstärke) dann in 5 min runter auf 0.
> benutze dafür Amega8 ( PD0 und PD1 als ausgänge ).

Geschickter wäre es, PB1 und PB2 zu verwenden. Dann kannst du die PWM 
selbst nämlich komplett in Hardware machen.

> Atmega8 ist an einen 4 Mhz Oszillator angeschloßen.
>
> brauche ich dafür 2 timer ,einer für pwm erzeugung ,2. für dauer der
> dimmen...???

Nein, nicht unbedingt. Du musst den Timer sowieso per Software 
erweitern, um so lange Zeiten messen zu können. Da kannst du auch gleich 
denselben Timer wie für die PWM nehmen. Einfach im Overflow-Interrupt 
eine Zählvariable hochzählen und mit dem passenden Wert für 10 bzw. 5 
Minuten vergleichen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren