Unruhiges LED dimmen - warum?

Gast #1936617
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?
Gast #1937526
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.

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