Forum: Mikrocontroller und Digitale Elektronik PWM mit 500 HZ am Timer 0


von Mathias Giacomuzzi (Gast)


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

von mathias giacomuzzi (Gast)


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??

von plitzi (Gast)


Lesenswert?

Die verwendete Quarzfrequenz und der AVR-Typ wären vielleicht noch
interessant.

Jörg

von Alex (Gast)


Lesenswert?

Wofür gibt es die PWM-Modi?

- Damit man nicht nachträglich noch an den Zählregistern
rumkonfigurieren muss.

von Mathias Giacomuzzi (Gast)


Lesenswert?

Also ATmega8535 bzw. ATmega32 mit 8 oder 16 MHz

@ Alex versteh nich was du meinst?? ich will die Grundfrequenz der PWM
einstellen!!

von ope (Gast)


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

von Andreas (Gast)


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.

von Alex (Gast)


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.

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.