Phasenkorrekter PWM (ATtiny13)

Gast #3013200
Lesenswert?
• ▲
▼
Hallo zusammen,

ich sammele gerade erste Erfahrungen mit PWM - habe mir den Artikel "AVR 
PWM" und das Datenblatt zum ATtiny13 angeschaut... klappt auch soweit, 
aber habe wohl ein Verständnisproblem mit "Phasenkorrekter PWM":

Ich möchte eine LED mit einer bestimmten Frequenz an- und ausschalten, 
wobei die High- und Low-Phase jeweils gleich lang sein soll, also 
phasenkorrekter PWM (nennt man so, oder?). Hier mein Progrämmchen:

<c>
#include <avr/io.h>

int main(void)
{
  // PB0 als Ausgang
  DDRB = (1<<PB0);

  // OC0A --> PIN PB0
  OCR0A = 20;

  // PWM Modus konfigurieren
         // Phasenkorrekter PWM & Toogle bei Compare-Match
  TCCR0A = (1<<COM0A0) | (1<<WGM02) | (1<<WGM00);

  // T/C-Vorteiler = Clock / 1024
  TCCR0B = (1<<CS02) | (1<<CS00);

  while(1)
  {

  }
}</c>

Ergebnis ist, dass die LED ständig angeschaltet ist, unabhängig vom Wert 
für OCR0A. Meine Erwartung für das Verhalten war:

- Zähler zählt von 0 bis OCR0A
- Bei Zähler = OCR0A wird LED umgeschaltet (an > aus bzw. aus > an)
- Zähler zählt rückwärts von OCR0A bis 0
- dann wieder zu Schritt 1

--> desto größer OCR0A, desto länger ist die Low- und High-Phase (wobei 
beide exakt gleich lang sind)

Was habe ich da falsch verstanden? Wo ist der Denk- bzw. Programmfehler?

Danke!!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.