Liebe Leute, ich habe folgendes Problem: Über den Timer 4 des Arduino Mega erzeuge ich eine PWM Signal, welches als Step-Signal an drei Schrittmotortreiber (A4988) geht. Die Schrittmotoren sollen unabhängig voneinander eine bestimmte Anzahl von Schritten zurücklegen. Dafür werden über 3 weitere Pins Enable-Signale an die Treiber gegeben. Um die Belastung für die CPU möglichst gering zu halten, soll Timer 5 als Counter das PWM-Signal als Clock-Source nutzen. Die Enable-Pins des Motortreibers sind an die Output-Compare Pins angeschlossen. Um eine bestimmte Anzahl von Schritten zu gehen, wird in das OCR5 Register der aktuelle Timerwert + die gewünschte Schrittzahl geschrieben. Wenn die Schrittzahl erreicht wurde und es zu einem Compare Match gekommen ist, wird der Motor über den Enable-Pin deaktiviert. Soweit so gut, das funktioniert bereits. Allerdings nur beim ersten Counter-Match. Möchte ich jedoch mehrfach hintereinander den Motoren eine Schrittzahl vorgeben, scheitere ich daran, den durch die Output-Compare-Unit gesetzten Pin wieder zu löschen. Ich weiß, dass ich den Pin über TCCR5C-Register im Toggle-Modus umschalten könnte, aber ich hätte gerne die Kontrolle darüber, dass der Timer den Motor nur aus- und nicht auch einschalten kann. Gibt es eine Möglichkeit, den Ausgang des Waveform Generators (OC5x) zu beeinflussen ohne ein Compare-Match auszulösen? Vielen Dank im Voraus! Gruß Joko
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.