Hallo! Bin gerade bei folgendem "Problem": Mit dem L297 und dem L298 will ich einen Schrittmotor ansteuern. Damit der Motor einen Schritt weiter geht, braucht der L297 eine steigende Flanke an seinem Clock-Eingang. Soweit so gut, dachte mir, ich mache das mit dem Timer 2 im CTC-Modus meines Atmega32. Funktioniert auch wunderbar, ich stelle also meinen OCR2 ein, und das Rechtecksignal wird schneller oder langsamer. Der Motor dreht halt dann schneller oder langsamer. Nur frage ich mich jetzt, wie ich den Timer2 nutzen kann um damit eine konkrete Anzahl von Schritten zu machen? Ich möchte also, zB 10 steigende Flanken mit einer bestimmten vorgegebenen Frequenz generieren, danach den Timer 2 wieder deaktivieren, oder sonst was. Kann mir da vielleicht jemand weiterhelfen? Danke Philipp P.
>Nur frage ich mich jetzt, wie ich den Timer2 nutzen kann um damit eine >konkrete Anzahl von Schritten zu machen? Im Timerinterrupt eine volatile Variable hochzählen.
@ Philipp Putzer (putzer_philipp) >Ich möchte also, zB 10 steigende Flanken mit einer bestimmten >vorgegebenen Frequenz generieren, danach den Timer 2 wieder >deaktivieren, oder sonst was. >Kann mir da vielleicht jemand weiterhelfen? Wo ist das Problem? In einer Variable bei jedem Timerinteerupt eins hochzählen und bei 10 den Timer deaktivieren. MFG Falk
In welchen Timer-Interrupt? Overflow oder Compare-Match? Ovf doch eher nicht, der Timer läuft ja nicht über. danke Philipp
>In welchen Timer-Interrupt? Overflow oder Compare-Match? >Ovf doch eher nicht, der Timer läuft ja nicht über. Tut er wohl, aber nicht da, wo er es ohne CTC macht. (Ein Überlauf ist ja nichts anderes als der Übergang einer oberen Grenze auf 0.) Guck dir einfach mal die Beschreibung des CTC-Modes im Datenblatt an. Da wird auch beschrieben, welcher Interrupt ausgelöst wird. Ein einfaches Beispiel sollte sich in der Codesammlung unter "eine simple Uhr" oder so ähnlich finden lassen.
Hi! Ja, habs jetzt hinbekommen. Hatte oben im Programm den T2 Overflow aktiviert, jedoch mit dem CTC-Interrupt-Vektor gearbeitet. Danke nochmals! Philipp
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.