Hab es nun hingekriegt, dass Tempo zu ändern *freu*. Aber eben erst mit einem Motor und ich will aber schon zwei ansteuern. Mit dem jetztigen Programm dreht sich der linke
Stepper (Timer0) einwandfei.
Kannst du nicht beide Motoren über den selben Timer steuern?
Anstatt den Timerintervall zu ändern, könntest du doch mit festem Intervall eine Funktion aufrufen und in dieser Funktion entscheiden, ob die Motoren einen Schritt machen oder nicht.
ungefähr so:
Code:
Dim Tempolinks As Byte
Dim Temporechts As Byte
Dim Temp As Byte
Const X = 255
Sub Go()
Incr Temp
If Temp > Tempolinks Then Call Rechtermotorvor()
If Temp > Temporechts Then Call Rechtermotorvor()
If Temp = X Then Temp = 0
End Sub
Timerirq:
Call Go()
Return
Bei X = 255 hoppelt dein Roboter vermutlich etwas um die Kurve, wenn du mit weniger Geschwindigkeitsstufen auskommst, könntest du X kleiner und dafür den Timerintervall entsprechend grösser machen.
Das ist aber eh nur eine auf die schnelle hingeschmierte Idee. Es gibt sicherlich elegantere Lösungen beide Motoren mit einem Timer zu steuern. Den 2. Timer wirst du sicher irgendwann auch noch für was anderes gut gebrauchen können.
Lesezeichen