Forum: Mikrocontroller und Digitale Elektronik PWM Frequenz genau festlegen


von PWM Frequenz genau festlegen (Gast)


Lesenswert?

Hallo,

ich habe ein Problem bei der Festlegung der PWM Frequenz beim Mega168. 
Dieser ist auf 20MHz getaktet und ich kann somit nur zwischen 10kHz 
(Prescaler=8) und 78kHz (Prescaler=1) wählen. Wie könnte ich denn 20kHz 
festlegen ?

Grüße

Robert

von 3374 (Gast)


Lesenswert?

Der Prescaler ist eine Sache, der Zaehler eine andere. Schau die den 
Zaehler nochmals an.

von Johannes M. (johnny-m)


Lesenswert?

PWM Frequenz genau festlegen wrote:
> ich habe ein Problem bei der Festlegung der PWM Frequenz beim Mega168.
> Dieser ist auf 20MHz getaktet und ich kann somit nur zwischen 10kHz
> (Prescaler=8) und 78kHz (Prescaler=1) wählen. Wie könnte ich denn 20kHz
> festlegen ?
Welchen Timer willst Du benutzen? Mit Timer 1 kannst Du auch andere 
Frequenzen einstellen, indem Du den TOP-Wert vorgibst. Mit Timer 0 geht 
tatsächlich bei 8-Bit-PWM nur 9,765 oder 78,125 kHz.

von PWM Frequenz genau festlegen (Gast)


Lesenswert?

Der 8-Bit Timer zähle ja von 0 bis 255 und setzt bzw. löscht beim 
compare-wert den PWM Pin. Gibt es die Möglichkeit, die obere Grenze, 
also die 255 selber festzulegen ?

von Johannes M. (johnny-m)


Lesenswert?

PWM Frequenz genau festlegen wrote:
> Der 8-Bit Timer
Aha! Warum nicht gleich?

> zähle ja von 0 bis 255 und setzt bzw. löscht beim
> compare-wert den PWM Pin. Gibt es die Möglichkeit, die obere Grenze,
> also die 255 selber festzulegen ?
Siehe oben: Mit einem 8-Bit-Timer geht es nicht.

von Fabs (Gast)


Lesenswert?

Entweder in dem du im Interrupt das Zählregister vorbelegst (sozusagen 
manuell) oder du schaust dir mal die CompareMatch Modi an.

Gruß
Fabian

von Johannes M. (johnny-m)


Lesenswert?

Fabs wrote:
> Entweder in dem du im Interrupt das Zählregister vorbelegst (sozusagen
> manuell)
Dann wird's aber mit ner PWM ganz übel...

> oder du schaust dir mal die CompareMatch Modi an.
Richtig, der Mega168 hat ja auch zwei Compare-Einheiten am Timer 0. 
Damit kann man die Periodendauer vorgeben. Allerdings geht dabei die 
Auflösung erheblich den Bach runter. Für 20 kHz wäre das dann nur noch 
eine 7-Bit-PWM.

von Benedikt K. (benedikt)


Lesenswert?

Johannes M. wrote:

>> zähle ja von 0 bis 255 und setzt bzw. löscht beim
>> compare-wert den PWM Pin. Gibt es die Möglichkeit, die obere Grenze,
>> also die 255 selber festzulegen ?
> Siehe oben: Mit einem 8-Bit-Timer geht es nicht.

Natürlich geht das, siehe Mode 5 und 7. Allerdings nur nach unten.

von Johannes M. (johnny-m)


Lesenswert?

Benedikt K. wrote:
> Natürlich geht das, siehe Mode 5 und 7. Allerdings nur nach unten.
Siehe mein Posting von 11:20...

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.