Hallo Zusammen, ich möchte per Timer bei einem mega128 eine PWM mit 1Hz realisieren. Wie würde man da am besten vorgehen? TimerOverflow würde sekündlich zb. den Portpin setzen, aber wie realisiere ich das löschen des Portpins per Timerinterrupt am elegantesten? Welchen TimerMode würdet ihr da am besten benutzen? Dummerweise hängt der Pin nicht an einem OutputCapture, also muss ich das manuell lösen... Danke und schönen Sonntag Spice
Wie hast du das denn hin gekriegt, dass du 1 Overflow pro Sekunde bekommst? 32kHz Quarz und entsprechender Vorteiler am Timer2? Was spricht gegen den Compare Match Interrupt und eine ISR, die den Pin zurücksetzt?
Noch habe ich den Overflow pro sekunde nicht, müsste ich in der ISR so hinbiegen. Im grunde stehen noch alle Timer zur Verfügung. SoftPWM müsste ich mir erst genauer anschauen. Karl Heinz Buchegger schrieb: > Was spricht gegen den Compare Match Interrupt und eine ISR, die den Pin > zurücksetzt? Wie meinste das? Quasi beim "Sekunden Overflow" pin setzen und dann halt in der selben ISR mitzählen und prüfen, ob der pin schon gesetzt ist, wenn ja zurücksetzen? Danke und Gruß Spice
Spice schrieb: > Overflow pro sekunde bei einem overflow pro sekunde kannst du ja gar keinen dutycycle mehr regeln, oder? es wäre dann doch sinniger z.B. 255 ovf/s zu haben, um dann mit einer variable von 0-254 regeln zu können wie lange der pin HIGH bzw LOW sein soll.
Danke Hansi, genau so hab ich das auch gelöst... ich habe 900Ints/sec, da kann man schön in 10% Abständen regeln... Gruß Spice
Warum keinen Phase Correct Mode PWM? Man braucht den den Output Pin ja nicht einzuschalten. Statt dessen den Compare Interrupt nutzen und den Pin in der ISR bei hochlaufenden Zähler zB einschalten. In der gleichen ISR beim runterzählen wieder ausschalten. Einen 16 bit Timer mit einem TOP Register auf die 1Hz PWM Frequenz trimmen.
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.