Hallo, ich erzeuge derzeit ein Rechtecksignal am OC1A-Ausgang des Timers zur Ansteuerung eines Schrittmotors. Die Frequenz stelle ich ein, indem ich das OCR1A auf meinen jeweils gewünschten Vergleichwert setze. Das Problem ist jetzt, wenn ich das Register verändere, dass der Schrittmotor (nur während der Änderung) ruckelt. Im AVR-GCC-Tutorial habe ich dazu gefunden: "Im Unterschied zu den PWM-Betriebsarten wird die Registeraktualisierung bei CTC nicht automatisch synchronisiert. Schreibt man einen neuen Compare-Wert, dann wird dieser sofort übernommen, was zu Fehlfunktionen führen kann, wenn der neue Compare-Wert höher ist, als der atuelle Stand von TCNTnx. In den PWM-Betriebsarten wird hingegen der TOP-Wert synchron bei Erreichen von TOP oder BOTTOM aktualisiert. " Hat einer von euch eine Idee wie ich die Frequenzänderung machen kann, ohne dass es diese "Ruckler" gibt? Martin
Hi. Zunächst solltest du vielleicht erläutern, was genau du machen willst.
Hi >Hat einer von euch eine Idee wie ich die Frequenzänderung machen kann, >ohne dass es diese "Ruckler" gibt? Änderung in den Overflowinterrupt verlegen. MfG Spess
@Stefan_KM: Ich will die Geschwindigkeit des Schrittmotors (=Frequenz des Rechtecksignals) zur Laufzeit verändern @spess53: Danke, das glaub ich war der Tipp der gefehlt hat...werds heute abend gleich mal probieren!!
Hi! Overflowinterrupt ist bei CTC eher der Fehlerfall. Du solltest den Wert eher im OC1Ainterrupt übergeben, da hat der Timer max 5 Takte drinn. Viel Erfolg, Uwe
Hi
>Overflowinterrupt ist bei CTC eher der Fehlerfall.
Richtig. Natürlich hatte ich den Compare-Interrupt gemeint.
Entschuldigung.
MfG Spess
Hallo Martin Kannst du dein Programm mal posten Gruss und danke Bernd
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.