ATMega8 Timer0 PWM (LED Dimmen) schaltet nicht komplett ab

#4395110
Lesenswert?

Hallo,

habe eine PWM 10bit Phase Correct am laufen.

Wenn ich OCR1A oder OCR1B setze funktioniert die PWM ohne Probleme. Wenn 
ich jedoch OCR1A = 0; oder OCR1B = 0; setze sind die LEDs jedoch nicht 
ganz aus.

Die LED bleibt immer noch ganz leicht an. Wer kann mir da weiter helfen?

Danke euch.
Gast #4395127
Lesenswert?

Hi

>Die LED bleibt immer noch ganz leicht an.

Ist normal:

If the OCRnx is set equal to BOTTOM (0x0000) the output
will be a narrow spike for each TOP+1 timer clock cycle.

> Wer kann mir da weiter helfen?

Entweder invertierter Betrieb oder phase/freqency correct benutzen.

MfG Spess
#4395197
Lesenswert?

Habe gerade festgestellt das es beim ATMega32 genau so ist -.-

ATMega8 Code
1
#include <avr/io.h>
2
#include <stdint.h>
3
#include <avr/interrupt.h>
4

5
void timer_start(void)
6
{ 
7
  OCR1A = 125-1;
8
    TCCR1B |= (1 << WGM12);
9
    TIMSK |= (1 << OCIE1A);
10
    TCCR1B |= (1 << CS01);
11
    sei();
12
}

ATMega32 Code
1
// Timer 1 || PWM
2
TCCR1A = (1<<WGM10)|(1<<WGM11)|(1<<COM1A1)|(1<<COM1B1);
3
TCCR1B = (1<<WGM12)|(1<<CS10);
4
OCR1A = 0;
5
OCR1B = 0;
6

7
sei();

Dimmen geht von 0 - 254. Also OCR1X = 0 - 254 geht.

Aber bei 0 sind die LEDs eben nicht aus.
Persönliche Seite #4395217
Lesenswert?

Rene H. schrieb:
> habe eine PWM 10bit Phase Correct am laufen.

Sicher?

Rene H. schrieb:
> ATMega8 Code
> #include <avr/io.h>
> #include <stdint.h>
> #include <avr/interrupt.h>
>
> void timer_start(void)
> {
>   OCR1A = 125-1;
>     TCCR1B |= (1 << WGM12);
>     TIMSK |= (1 << OCIE1A);
>     TCCR1B |= (1 << CS01);
>     sei();
> }

Das ist der CTC Modus.


> ATMega32 Code
> // Timer 1 || PWM
> TCCR1A = (1<<WGM10)|(1<<WGM11)|(1<<COM1A1)|(1<<COM1B1);
> TCCR1B = (1<<WGM12)|(1<<CS10);
> OCR1A = 0;
> OCR1B = 0;
>
> sei();

Das ist Fast PWM (10 Bit).

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