Das braucht dann seine Zeit. 72 Mal 2 Sekunden Pause plus 72 Mal 82 Umdrehungen inkl. 30 ms Pause. Da würde ich mir dann Gedanken um "Multitasking" machen. Entweder per Timer oder mit Zeitschlitzen arbeiten. Falls Daten per I2C übertragen werden sollen und auch die Stopptaste würde ich während dessen nicht stilllegen. Ist das in Deinem Projekt nicht von Bedeutung, dann einfach die Schleife von 400 auf 82 ändern und eine Pause von 2 Sekunden einfügen. Darum noch eine 2. Schleife mit 72 Durchläufen und Deine Wünsche sind ohne Rücksicht auf Verluste der Tasten und I2C während der Codeausführung erfüllt.
In den Kopf:
Dann die Änderungen:Code:dim Durchlauf as byte
Oder mit Stopptaste:Code:Case 2 'Bewegt Motor genau 400 Halbschritte (1 Umdrehung bei den meisten Motoren) For Durchlauf = 1 to 72 For I = 1 To 82 Stepper_takt = 0 : Waitus 1 : Stepper_takt = 1 Waitms 30 Next I Wait 2 next durchlauf
In den Kopf:
Dann die Änderungen:Code:dim Durchlauf as byte dim ipause as integer dim abbruch as byte 'schneller als bit
Alles ungetestet...Code:Case 2 'Bewegt Motor genau 400 Halbschritte (1 Umdrehung bei den meisten Motoren) abbruch=0 For Durchlauf = 1 to 72 For I = 1 To 82 Stepper_takt = 0 : Waitus 1 : Stepper_takt = 1 Waitms 30 if abbruch=1 then exit for Next I for ipause= 1 to 2000 ' evtl. Wegen Tastenabfrage verkleinern Waitms 1 taste = tastenabfrage() if taste=5 then abbruch=1 end if if abbruch=1 then exit for next durchlauf





Zitieren

Lesezeichen