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
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??
Wofür gibt es die PWM-Modi? - Damit man nicht nachträglich noch an den Zählregistern rumkonfigurieren muss.
Also ATmega8535 bzw. ATmega32 mit 8 oder 16 MHz @ Alex versteh nich was du meinst?? ich will die Grundfrequenz der PWM einstellen!!
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
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.
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.