Forum: Mikrocontroller und Digitale Elektronik Unruhiges LED dimmen - warum?


von didi (Gast)


Lesenswert?

Hallo,

Ich experimentiere gerade mit dem dimmen von LEDs. Leider ist das ganze 
vor allem bei kurzen High Phasen des PWM Signals sehr unruhig und 
flackert. Mir ist nur nicht klar warum, da ich das ganze über den Timer2 
realisiere, der eine höhere Prio als die Interrupts von Timer1 und 
Timer0 haben, sollte das saubere Schalten des PWM Signals höhere 
Priorität haben.

Ich hab das ganze über einen Timer2 Overflow Interrupt und einen Timer2 
Compare Match am ATMEGA 168 realisiert:
1
TCCR2B   |= (1<<CS22);   // Prescale Takt / 128 (ergibt Periode 11,574us)
2
TCCR2B  &= ~(1<<CS21);  // Ergibt 2,963ms PWM Takt
3
TCCR2B  |= (1<<CS20);
4
TIMSK2 |= (1<<OCIE2A);  // Compare Match A INTERRUPT
5
TIMSK2 |= (1<<TOIE2);  // Timer2 Overflow INTERRUPT
6
7
OCR2A = 128;
8
9
ISR(TIMER2_COMPA_vect)
10
{
11
if(channelJobArray[0] == 22)
12
{
13
  //Lösche LED
14
  PORT_OUT1 &= ~(1<<OUT1);      
15
}
16
}
17
18
ISR(TIMER2_OVF_vect)
19
{
20
PORT_OUT1 |= (1<<OUT1);      
21
  
22
TCNT2 = 0;
23
}

Hat jemand eine Idee wo der Fehler liegt?

von Matze N. (hupe123)


Lesenswert?

Weil wahrscheinlich deine Aufruffrequenz zu langsam ist.
schau dir an, wie es hier gelöst wurde:
http://www.lighthugger.de/wordpress/?p=96#more-96

ich habe es bei mir zuhause mit einem Takt von 90kHz realisiert... gut, 
vielleicht etwas übertrieben, aber der ATmega8 20Mhz hat nich viel zutun 
;)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Matze Niemand schrieb:
> ATmega8 20Mhz

Gibt´s nicht. Entweder ATMega8 mit 16Mhz oder ATMega88 mit 20Mhz. 
Übertakten mal aussen vor gelassen.

von Matze N. (hupe123)


Lesenswert?

ohh, das stimmt. ich hab eben mal nachgeschaut: sind nur 16Mhz...

von Simon K. (simon) Benutzerseite


Lesenswert?

Der Code ist so nicht kompilierbar.

90kHz ist aber Quatsch. 100Hz reicht meistens. 1kHz kann man machen um 
auf der sicheren Seite zu sein. Allerdings leidet bei 20MHz Takt dann 
schon die PWM Auflösung.
Das
1
TCNT2 = 0
 lässt du am Besten mal weg.

von Matze N. (hupe123)


Lesenswert?

klar sind 90kHz quatsch, keine Frage. Aber warum leckt sich ein Hund an 
den Eiern?! Weil er's kann.
Hat auch zum Schluss nur noch spaß gemacht zu gucken was geht... ;)

von Basti (Gast)


Lesenswert?

Ja dimmt eure LEDS nur mit hächstmöglichen Frequenzen und geht allen 
Mittelwelle/Kurzwelle Hörern auf den Sack :-)

100Hz sollten ausreichen

von U.R. Schmitt (Gast)


Lesenswert?

Basti schrieb:
> 100Hz sollten ausreichen

100 Hz sind sch... Sind dir noch nie die blöden LED Rückleuchten 
bekannter deutscher Autobauer aufgefallen, die,wenn du den Kopf schnell 
bewegst, dir mehrfache Lichtpunkte im Auge erzeugen?
400 - 1000Hz sind hier eine deutlich bessere Wahl, mit den 100KHz geb 
ich dir aber völlig recht.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

U.R. Schmitt schrieb:
> Basti schrieb:
>> 100Hz sollten ausreichen
>
> 100 Hz sind sch... Sind dir noch nie die blöden LED Rückleuchten
> bekannter deutscher Autobauer aufgefallen,
Ich dachte, das seien nur 70Hz.
Trotzdem sehe ich 100Hz für zu niedrig an.

von ... .. (docean) Benutzerseite


Lesenswert?


von Matze N. (hupe123)


Lesenswert?

hmm... stimmt. das mit dem mittel / langwellenradio hab ich völlig außer 
acht gelassen. ich höre kein radio - zuviel werbung - aber ich denke bei 
dem nächsten update der lampe mal dran! versprochen!

grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.