Atmega164p - Fast PWM funktioniert nicht

OP #2100439
Lesenswert?

Hallo,
ich versuche grade eine Fast PWM auf einem Atmega164p zum laufen zu 
bekommen. Hier mein Code:
1
  // prescaler = 8
2
  TCCR0B = ( (0<<CS02) | (1<<CS01) | (0<<CS00) );
3

4
  // set Fast PWM mode with clear at OCRA
5
  TCCR0A = ( (1<<COM0A1) | (1<<WGM01) | (1<<WGM00) );
6
  
7
  TCCR0B |= ( (1<<WGM02) );
8

9
  // set OC0A as output
10
  DDRB |= (1<<PB3);
11
  
12
  OCR0A = 127;

Wenn ich mir in der Main immer TCNT0 ausgebe sieht man, dass der Timer 
läuft. Der Pin bleibt jedoch die ganze Zeit auf high.
Was stimmt hier nicht?
OP #2100478
Lesenswert?

OK dann erstmal eine andere Frage: Ist der Mode 7 eigentlich der 
richtige oder muss ich 3 nehmen? Ich will dass der einfach immer von 0 
bis 255 rennt und bei OCR0A den pin dann aus schaltet, bei 0 
einschaltet.
Ich habe eben mal OCR0A auf 0xff gesetzt, OCR0B auf 0x10 und ich habe 
ein Tastverhältnis von 50%. Das ist wohl nicht ganz das was ich wollte.
Gast #2100488
Lesenswert?

Hi

>Ich will dass der einfach immer von 0
>bis 255 rennt und bei OCR0A den pin dann aus schaltet, bei 0 einschaltet.

Dann nimm Mode 3.

>Ich habe eben mal OCR0A auf 0xff gesetzt, OCR0B auf 0x10 und ich habe
>ein Tastverhältnis von 50%. Das ist wohl nicht ganz das was ich wollte.

Das passt nicht.

MfG Spess

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