Forum: Mikrocontroller und Digitale Elektronik AVR als Taktgeber


von Neuling (Gast)


Lesenswert?

Hallo,

wie kann ich mit einem AVR, z. B. Mega8, eine bestimmte Anzahl Takte mit 
einer festen Frequenz ausgeben? Also z.B. 50 Takte bei einer Frequenz 
von 100 Hz.
Das Problem hierbei ist, dass das Ganze sozusagen im Hintergrund 
geschehen sollte, weil der AVR zur gleichen Zeit anderes zu tun hat. 
Also einfaches Schalten eines Ausgangspins geht hier nicht. Aber das 
müsste doch mit den Timern zu machen sein.

Hat jemand eine Idee? Danke für eure Anregungen!

von Rahul D. (rahul)


Lesenswert?

CTC-Modus

von F. K. (freddy436)


Lesenswert?

Guck dir mal diverse Schrittmotor Steuerungen an, da wird so was z.B. 
benötigt.

Man kann es entweder direkt mit der Hardware machen oder noch ein wenig 
Software dazu. Die Software Variante ist deutlich flexibler, so kann man 
z.B. mit nur einem Timer mehrere (verschiedene) Frequenzen erzeugen.

von Neuling (Gast)


Lesenswert?

Hallo,

hab' mich mal kurz in das Thema CTC eingelesen. So wie ich das verstehe 
kann ich damit meine gewünschte Frequenz erzeugen. Mir ist aber noch 
nicht klar, wie ich exakt die gewünschte Anzahl Pulse ausgeben kann.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

PWM-Ausgang nutzen, Timer1 im CTC-Modus mit geeignetem Vorteiler 
programmieren oder OCR1A-Register als Top-Value benutzen. Wenn feine 
Auflösungen gewünscht sind, kann man auch beide Varianten kombinieren, 
also 2 Timer benutzen, einen als programmierbaren Vorteiler, den anderen 
dann als freilaufende PWM.

von F. K. (freddy436)


Lesenswert?

Neuling wrote:
> Hallo,
>
> hab' mich mal kurz in das Thema CTC eingelesen. So wie ich das verstehe
> kann ich damit meine gewünschte Frequenz erzeugen. Mir ist aber noch
> nicht klar, wie ich exakt die gewünschte Anzahl Pulse ausgeben kann.

Was für eine Quarz Frequenz hast du den und was für eine Frequenz 
brauchst du?

von Neuling (Gast)


Lesenswert?

Hallo,

genau das will ich machen, nämlich einen Schrittmotor ansteuern! Die 
Pulse gehen auf eine L297/L298-Kombination. Mittels definierter Anzahl 
Pulse kann mein Antrieb einen bestimmten Weg zurücklegen. Es kann aber 
sein, dass der Weg noch nicht zurückgelegt ist und schon die Anforderung 
nach zusätzlicher Wegstrecke kommt.

von Johannes M. (johnny-m)


Lesenswert?

Wo liegt das Problem? Eine Zählvariable, die mit der Schrittzahl 
vorgeladen und mit jedem Schritt dekrementiert wird. Wenn dann 
zwischendurch noch ein paar Schritte dazukommen, dann einfach zur 
Variable dazuaddieren.

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
Noch kein Account? Hier anmelden.