Hallo Gemeinde, ich betreibe zurzeit zwei Schrittmotoren an einem AVR Mega164(bin mir grade nicht sicher, sollte auch keine Rolle spielen)! Die Daten der Steuerung empfange ich über RS232. Bislang was das Konzept so: Endlosschleife (sind daten da?) -> Wenn ja, dann überprüfe ob Start und Stopbit stimmen (Wenn nicht, dann gebe Fehler aus) -> Wenn ja, lese die Geschindigkeit die Takte aus, und takte die Schrittmotortreiber. Wenn Schrittmotoren gefahren, dann schicke eine erkennung das fertig. Der PC wartet auf die erkennung, und sobald er diesen Handshacke hat, schickt er neue Daten. Das Ergebniss ist, das die Motoren sich bewegen, dann sehr kurz stehenbleiben und weiterfahren. Ich würde es gerne so machen, das die Motoren sich kontinuierlich bewegen, und die Daten reinkommen, wärend sich die Motoren bewegen. Damit würde ein sauberes fahren der Achsen entstehen, und es wäre gesünder für die Motoren (Strom) und es würde nicht so laut sein. Welches Konzept kann ich für diese Problematik verwenden ? Ich habe bis jetzt mit dem Befehl "Input" meine Daten abgefragt. Ich der wartet bis das Carrige Return kommt. Ist das für einen solchen Programmablauf richtig ? Ich vermute das es elegantere Lösungen gibt. Daten über einen Interrupt in den Puffer schreiben ? Also die Motoren in der Hautschleife laufen lassen, und über den Seriellen Interrupt dann die Daten auswerten.... Wäre schön wenn jemandem dazu etwas einfällt... Zum Glück gibt es hier Profis ! Ach ja, noch zu ergänzen wäre, das ich die Schrittmotoren übier die bekannte L297 und L298 -Schaltung betreibe ;) Vielen Dank ! Tim
Eine Interrupt-Routine wäre die elegantere Lösung. Sehr schön und ausführlich hier beschrieben: http://www.rowalt.de/mc/avr/avrboard/06/avrb06.htm
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.