Atmega8 Timer1 OC1A/OC1B: nur A läuft

OP #6192299
Lesenswert?
• ▲
▼
Hallo,

Atmega8

Möchte die PWM von Timer1 benutzen um auf OC1A und OC1B verschiedene 
Frequenzen auszugeben.
Mit meinem Init vom Timer läuft nur OC1A (mit LEDs getestet).

Warum läuft OC1B nicht mit?

void init_timer1(void)
{
  DDRB |= (1<<PB1);
  DDRB |= (1<<PB2);//OC1A/OC1B als Output
  TCCR1A |= (1<<COM1A1) | (COM1B1);//set at bottom;clear at compare
  TCCR1A |= (1<<WGM10);//phase correct, 8Bit
  TCCR1B |= (1<<CS11);//Prescaler 8: 14745600 / 256 = 57600 / 8 = 7200
  //Test
  OCR1A = 162;
  OCR1B = 100;
}

Jens
OP #6192347
Lesenswert?
• ▲
▼
o.k

Habs jetzt mal in zwei Zeilen geschrieben:

TCCR1A |= (1<<COM1A1);//set at bottom;clear at compare
TCCR1A |= (1<<COM1B1);//set at bottom;clear at compare

Das geht!

Wie setzt man richtig mehrere Bits in einem Register gleichzeitig?

Jens

P.S.: Habs gefunden, man muss die Masken wohl klammern:

TCCR1A |= ((1<<COM1A1) | (1<<COM1B1));
Gast #6192416
Lesenswert?
• ▲
▼
Jens N. schrieb:

> Möchte die PWM von Timer1 benutzen um auf OC1A und OC1B verschiedene
> Frequenzen auszugeben.

Tja, dann hast du ein ernsthaftes Problem. Das ist nämlich völlig 
unmöglich. Zwei PWM-Kanäle eines AVR8-Timers haben zwangsläufig 
immer dieselbe PWM-Frequenz.

Bestenfalls (z.B. halt bei Timer1 der Atmegas) ist es wenigstens 
überhaupt möglich, an der Frequenz zu drehen und trotzdem zwei 
PWM-Kanäle zu haben.

Sprich: lies' endlich das verdammte Datenblatt!

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.