Timer1 Duty Cycle auf 0 setzen

Gast #3625075
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte bei meinem Atmega32 den Duty Cycle von Timer1 auf 0 setzen. 
Wenn ich das jedoch mit
1
OCR1A = 0;
2
OCR1B = 0;

mache, ist das Signal für 260µs low, worauf immer ein Spike auf High 
(ca. 1µs) folgt. Danach ist das Signal wieder für 260µs low.

Die Initialisierung ist wie folgt:
1
TCCR1A |= (1<<WGM10) | (1<<WGM12) | (1<<COM1A1) | (1<<COM1B1);
2
TCCR1B |= (1<<WGM12) | (1<<CS10);

Laut Datenblatt ist das ja Folgendes:
Clear OC1A/OC1B on compare match, set
OC1A/OC1B at BOTTOM

Wenn ich zusätzlich COM1A0 und COM1B0 auf 1 setze, habe ich das genau 
invertierte Verhalten von oben, was ja auch klar ist.

Klar ist für mich nur nicht, wie ich bei OCR1X = 0 das Signal komplett 
auf 0 lassen kann.

Hat jemand hierfür nen Vorschlag?

Vielen Dank im Voraus!

Gruß DM

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.