PWM an OCR2 funktioniert nicht.

Gast #1335776
Lesenswert?

Guten Tag;

Ich würde gerne alle drei Kanäle des ATMega8 nutzen, aber ich bekommen 
nur an OCRA1 und OCRB1 ein Signal, OCR2 bleibt tot... wodran liegt's? So 
sieht mein Code bislang aus
1
int main(void)
2
{
3

4
  
5
  // OC1A, OC1B, OC2 auf Ausgang
6
  DDRB = (1 << PB1 ) | (1 << PB2 ) | (1 << PB3 );
7
  
8
 
9
  TCCR1A = (1<<COM1A1) | (1<<WGM10);     // PWM Phase correct, 8Bit
10
                                   // Clear OCR1A/B on Compare Match when up-counting.
11
                          // Set OCR1A/B on Compare Match when downcounting.
12
  TCCR1B = (1<<CS10);            // keinen Vorteiler
13
  
14
  TCCR2 = (1<<WGM20) | (1<<COM21) | (1<<CS20);  // PWM Phase correct, 8Bit
15
                                   // Clear OC2 on Compare Match when up-counting.
16
                          // Set OC2 on Compare Match when downcounting.
17
                            // keinen Vorteiler
18

19

20
    
21
    OCR1A = 0x0080;  //  der Zähler zählt bis zu diesen Werten
22
    OCR1B = 0x0040;
23
    OCR2 = 0x20;
24
    
25
   while (1){
26
   ;
27
   };
28
 }


Bin für jeden Tipp dankbar...

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