PWM mit 500 HZ am Timer 0

Gast #173173
Lesenswert?
• ▲
▼
Hallo kann mir mal jemand bitte Helfen. Ich habe versucht eine PWM mit
500 Hz zu erzeugen, jedoch erfolglos. Ich dachte mir bzw. so habe ich
es im Datenblatt verstanden:

prescale factor auf 64;
und TCNT0 auf 0x06; setzten.

==> kommt immer nur 250 Hz heraus;

Dann habe ich noch versucht, TCNT0 ständig neu zu setzten mit dem
output compare interrupt. ==> so geht es auch wenn man den Timer als
normal Timer verwendet also kein PWM aber das geht im PWM Modus nicht.

Kann mir jemand sagen wie das gehen könnte oder kann man das gar
nicht?? ==> gehen nur Frequenzen nach der Formel fclk/(N*510) ??

Besten Dank im Voraus

mfg mathias
Gast #173174
Lesenswert?
• ▲
▼
Also ich habe wirklich das Datenblatt gründlich gelesen, und es so
verstanden das man TCNT0 beispielsweise vorladen kann um eine PWM
Frequenz von zum Beispiel 500Hz erreichen zu können, aber es
funktioniert nicht ?

Weis es jemand ob man nur die Teiler verwenden kann oder ob man eine
variable andere Frequenz irgendwie einstellen kann??
Gast #173178
Lesenswert?
• ▲
▼
Hi,

so wie ich das sehe, macht Dein Programm schon was es soll, alle 2ms
(500Hz) wird Deine Routine aufgerufen - wenn Du jedoch Dein Port Pin
toggelst, sind es eff. 4ms (250Hz) - Du hast damit die Eigenschaften
eines Flip-Flop erfolgreich programmiert.

... und nicht vergessen den preload Wert immer wieder nachzuladen nach
jedem Interuptus ...

Viele Grüße
Olaf
Gast #173179
Lesenswert?
• ▲
▼
Um die Grundfrequenz der PWM zu ändern kann man IMHO nur die Vorteiler
oder die MCU Taktfrequenz verändern. Alle anderen Methoden wie
Registerinhalte ständig umändern sind irgendwie Murks.
Gast #173180
Lesenswert?
• ▲
▼
@Mathias & Andreas

Datenblatt lesen bildet!

Auf einem ATMega8 nehme man bspw. Timer 1 im Modus 14. Es kann sowohl
die Frequenz als auch die Pulsweite variiert werden. Nach einmaliger
Initialisierung läuft die PWM in Hardware.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.