Call setMaxSpeed() and setAcceleration once only, in setup(), they are setup calls.
run() should be called every time through loop(), whatever else is going on, and you need
to ensure loop() runs fast (no delays, no other loops that take control away from loop() function.
To stop a current motion unilaterally just call stop().