www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Rechtecksignal an OC1A über CTC-Modus des Timers erzeugen


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Stefan_KM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi.

Zunächst solltest du vielleicht erläutern, was genau du machen willst.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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!!

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Overflowinterrupt ist bei CTC eher der Fehlerfall.

Richtig. Natürlich hatte ich den Compare-Interrupt gemeint. 
Entschuldigung.

MfG Spess

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Martin

Kannst du dein Programm mal posten

Gruss und danke
Bernd

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.