Forum: Mikrocontroller und Digitale Elektronik Atmega8 timer1 Fast PWM


von Josef (Gast)


Lesenswert?

Hallo,
ich habe das Problem dass mein Timer1 nicht im Fast PWM Mode anläuft.
Habe ich bei der Registerbelegung noch etwas vergessen?
1
OCR1A = 500; // PWM einstellen, bevor der Timer startet
2
  OCR1B = 800;
3
  
4
  TCCR1A |= (1<<COM1A1);  // non inverting
5
  TCCR1A |= (1<<COM1B1);
6
  TCCR1A |= (1<<WGM10);  // Fast PWM OCR1A Top
7
  TCCR1A |= (1<<WGM11);
8
  
9
  TCCR1B |= (1<<WGM12);
10
  TCCR1B |= (1<<WGM13);
11
  TCCR1B |= (1<<CS10);  // no prescaling

Danke für eure Hilfe!

von Milo (Gast)


Lesenswert?

Josef schrieb:
> Habe ich bei der Registerbelegung noch etwas vergessen?

Die entsprechenden Portpins als Ausgang zu konfigurieren?

von Spess53 (Gast)


Lesenswert?

Hi

>OCR1A = 500; // PWM einstellen, bevor der Timer startet
>  OCR1B = 800;

>  TCCR1A |= (1<<COM1A1);  // non inverting
>  TCCR1A |= (1<<COM1B1);
>  TCCR1A |= (1<<WGM10);  // Fast PWM OCR1A Top

Im Mode 15 (OCR1A als Top) hast du nur den PWM-Kanal B zur Verfügung. 
OCR1A bestimmt die Frequenz und Auflösung der PWM. Damit an Kanal B eine 
PWM herauskommt muss OCR1A größer als OCR1B sein.

MfG Spess

von Josef (Gast)


Lesenswert?

Ist bereits gemacht, habe ich leider vergessen noch hin zu schreiben.
1
DDRB |= 0xFF;

von Josef (Gast)


Lesenswert?

Danke Spess!
Das war das Problem :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.