atmega8 Timer2 PWM zeigt keine Wirkung

Gast #3285613
Ich versuche gerade eine LED mittels PWM zu dimmen. Dafür benutze ich 
den Timer2 (8Bit) des Atmega8, weil die anderen Timer schon belegt sind.
Aber wenn ich die LED an OC1A oder B lege passiert einfach garnichts, wo 
liegt der Fehler ?
1
#define F_CPU 3686400UL
2

3
#include <avr/io.h>
4
#include <avr/interrupt.h>
5
#include <util/delay.h>
6

7
int main(void)
8
{
9
  DDRB |= ((1<<PB1) | (1<<PB2));
10
  
11
  
12
  TCCR2 |= ((1<<WGM21) | (1<<WGM20) | (1<<CS22) | (1<<CS21) | (1<<COM21)); //Fast PWM, Prescaler 256, Non inverting
13
  OCR2 = 0;
14
  sei();
15
    while(1)
16
    {
17
       OCR2++;
18
     _delay_ms(20);
19
    }
20
}
Gast
Okay das mit OCR2 habe ich auch gerade gemerkt. Wenn ich jetzt daran ein 
Piezosummer hänge, kann ich leider nur mit den Prescalern die Frequenz 
ändern. Wenn ich im Register OCR2 versuche einen Wert zwischen 0 und 255 
einzutragen kommt fast immer der gleiche Ton, was mache ich falsch ?
Gast
Beim OCR2 muss ich mich korrigieren: das sollte so funktionieren (sofern 
Du eine sich ändernde PWM erzeugen willst) - hab das Register mit dem 
TCNT2 verbuxelt.
Ranjid schrieb:
> Okay das mit OCR2 habe ich auch gerade gemerkt. Wenn ich jetzt daran ein
> Piezosummer hänge, kann ich leider nur mit den Prescalern die Frequenz
> ändern. Wenn ich im Register OCR2 versuche einen Wert zwischen 0 und 255
> einzutragen kommt fast immer der gleiche Ton, was mache ich falsch ?

Du brauchst keine PWM sondern CTC.

mfg.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.