Forum: Mikrocontroller und Digitale Elektronik Variable PWM-Frequenz erzeugen


von Wolfgang S. (wsm)


Lesenswert?

Ich benutze einen Atmega32 mit 16MHz und erzeuge mit Timer1 ein 10-Bit 
PWM-Signal.
Im Fast-mode ergibt sich dann eine PWM-Frequenz von 16MHz / 1024 = 
15625Hz.
Auch alle anderen Vorteiler und PWM-modes erzeugen immer nur für mich 
ungeeignete PWM-Frequenzen.

Kann durch das Setzen bestimmter Register eine andere PWM-Frequenz 
erreicht werden?

Wenn ja, wie?


Eine Software-PWM kommt nicht in Frage, da die Rechenzeit anderweitig 
benötigt wird.

von Mein grosses V. (vorbild)


Lesenswert?

Wolfgang S. schrieb:
> Wenn ja, wie?

Indem du mit dem ICR1- oder OCR1A- Register einen anderen Topwert 
definierst.

Beispiel:

Du möchtest 1KHz: 16MHz / 1KHz -1 = 15999. Diesen Wert schreibst du im 
Timermode 14 ins ICR1-Register. Damit ändert sich allerdings auch deine 
Auflösung von 1024 auf 16000 bei Prescaler = 1.

von Sascha (Gast)


Lesenswert?

Dazu eignet sich der CTC Modus hervorragend.

von Wolfgang S. (wsm)


Lesenswert?

Super,

Hat auf Anhieb geklappt.

Vielen Dank.

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.