Forum: Mikrocontroller und Digitale Elektronik PWM funktioniert nicht richtig 2313


von Stephan Schwarz (Gast)


Lesenswert?

Hallo


TCCR1A = (0<<PWM11|1<<PWM10);      // 8 Bit PWM Mode
TCCR1A = (1<<COM1A0);          // nicht invertierender PWM Mode  up = 
high
TCCR1B = ((1<<CS11)|(1<<CS10));     // ck = Xtal/8
TIMSK = (1<<TOIE1);          // enable timer interrupt
sei();


Warum hat meine Einstellungen im TCCR1A keine Wirkung?
Egal ob ich 8,9 oder 10 Bit wähle. Die Impulsdauer hat immer die
gleiche Länge (viel zu lang).
Die Einstellungen des Prescalers funktionieren gut.

von crazy horse (Gast)


Lesenswert?

TCCR1A = (0<<PWM11|1<<PWM10);      // 8 Bit PWM Mode
TCCR1A = (1<<COM1A0);          // nicht invertierender PWM Mode  up =

mit der 2. Anweisung überschreibst du die 1.
Entweder gleich in einer Zeile oder in der 2.Zeile:
TCCR1A |= (1<<COM1A0);

ob es so sonst stimmt, habe ich nicht überprüft.

von Christian Schifferle (Gast)


Lesenswert?

0<<PWM11 hat keine Wirkung.
Ansonsten lies mal im C-Kurs unter Artikel oder in der Wiki nach.

von Stephan Schwarz (Gast)


Lesenswert?

@crazy horse
Ich hatte den gedanken kurz im Kopf und hab Ihn leider nicht weiter
verfolgt. Klingt aber extrem logisch!!

@ Christian

das mit dem 0<<PWM11     war nur zum testen, da ich oft experimentiert
habe und die werte öffters geändert habe.


Danke

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.