Hallo Zusammen, ich lesen den Artikel nun schon einige male und komme auch langsam hiner das Geheimnis "PWM". Was ich aber nicht verstehe, ist folgender Satz " im AVR-Studio kann man den Code simulieren. Wichtig ist hier vor allem die Ausführungszeit des Interrupts. Bei 100 Hz PWM-Frequenz und 256 Schritten pro PWM-Zyklus wird diese Funktion immerhin 25600 mal pro Sekunde aufgerufen (PWM-Takt 25,6 kHz), bei 8MHz Taktfrequenz stehen damit maximal 312 Takte zur Verfügung " Warum 312 Takte ?? Kann mir das jemand erklären ? Danke im Voraus
@ Thomas (Gast)
>Warum 312 Takte ??
Mathematik?
PWM Frequenz 100 Hz -> 10ms Periodendauer.
Diese wird unterteilt in 2^8=256 PWM-Takte: 100 Hz * 256 = 25,6kHz bzw.
39µs Periodendauer
Bei 8 MHz schafft man 8MHz / 25,6kHz = 312,5 Takte.
MfG
Falk
Genaugenommen wären es 312,5. 8000000/25600=312.5 Da hier aber keine halben Takte möglich sind, nimmt man 312 Takte. Die Interruptfrequenz wird dann 25641Hz. Die PWM Frequenz ist dann 100,16Hz 8000000/312=25641Hz 25644/256=100,16
Hallo. ich habe hier ein Verfahren, mit dem man bereits bei sehr langsamen Taktraten ein Signal Erzeugen mit geringem niederfrequenten Anteil erzeugen kann. Diese Art der PWM eignet sich aber nur, wenn man die mittlere Spannung reduzieren will. Zum Beispiel einen ohmschen Verbrauchen in der Leistung reduzieren http://www.sebulli.com/gpwm/index.html Gerd
Gerd B. schrieb: > ich habe hier ein Verfahren ... Ui, das geht aber wesentlich einfacher zu lösen: Bei jedem Interupt: 1. addiere den Ausgabewert zu einem Zähler 2. kopiere das Überlaufflag auf Deinen Ausgabeport. Fertig. Delta-Sigma-Wandler erzeugen ähnliche Signale. Gruß Jobst
@ Gerd B. (Gast) >ich habe hier ein Verfahren, mit dem man bereits bei sehr langsamen >Taktraten ein Signal Erzeugen mit geringem niederfrequenten Anteil >erzeugen kann. Pulsdichtemodulation, ein alter Hut. >Diese Art der PWM eignet sich aber nur, wenn man die mittlere Spannung >reduzieren will. Genau das gleiche macht PWM. Der Unterschied ist die Minimalfrequenz. Die ist bei Pulsdichtemodulation hoch, das vereinfacht die Filterung. Bedeutet aber viele Schaltverluste, was ab einem bestimmten Leistungsbereich nicht mehr tragbar ist. MFG Falk
Helmut S. schrieb: > Genaugenommen wären es 312,5. > 8000000/25600=312.5 > Da hier aber keine halben Takte möglich sind, nimmt man 312 Takte. > Die Interruptfrequenz wird dann 25641Hz. > Die PWM Frequenz ist dann 100,16Hz > 8000000/312=25641Hz > 25644/256=100,16 Um nun diese exakten 100 Hz (bzw. 100,16) mit einem Quarz von 8Mhz zu ereichen, muss ich die ISR dann auch alle 25641 Takte anspringen ?
@ Thomas (Gast) >Um nun diese exakten 100 Hz (bzw. 100,16) mit einem Quarz von 8Mhz zu >ereichen, muss ich die ISR dann auch alle 25641 Takte anspringen ? Nachmal lesen und drüber nachdenken. . .
Falk Brunner schrieb: > Nachmal lesen und drüber nachdenken. . . ... das mach ich leider schon den ganzen Vormittag ... :-(
@ Thomas (Gast) >> Nachmal lesen und drüber nachdenken. . . >... das mach ich leider schon den ganzen Vormittag ... :-( Die Timer-ISR wird nach jeweils 312 Takten aufgerufen. Steht überall im Artikel. Das sind bei 8 MHz 39µs bzw 25,6kHz, das die der PWM-TAKT. 256 dieser Aufrufe machen eine PWM-PERIODE mit 10ms. WOW!
Puh ... ich hoffe, dass ich das nun kapiert habe. Anbei meine kurze Grafik.
@ Thomas (Gast) >Puh ... ich hoffe, dass ich das nun kapiert habe. Anbei meine kurze >Grafik. Fast. Dein Hardwarezähler (Timer) zählt von 0-311, nicht 0-255. Dein Softwärezähler zählt vonh 0-255, das passt. MfG Falk
Falk Brunner schrieb: > Fast. Dein Hardwarezähler (Timer) zählt von 0-311, nicht 0-255. > > Dein Softwärezähler zählt vonh 0-255, das passt. ahhrrgg ... Ich raste hier noch aus .. warum kann ich denn mit einem 8bit Timer von 0 - 311 zählen ??
@ Thomas (Gast) >ahhrrgg ... Ich raste hier noch aus .. warum kann ich denn mit einem >8bit Timer von 0 - 311 zählen ?? Wer redet denn von einem 8 Bit Timer? Im Artikel wird Timer 1 verwendet, der hat 16 Bit. Der Softwarezähler hat 8 Bit. MFG Falk
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.