GF1021:
MarkT ... Don't I have to have "stepper.run" in every of my sub-functions? Don't they act as loops? And when I try to use "stepper.stop()" I get "class Accelstepper has no member named stop".
C doesn't allow subfunctions(*). You mean functions called from loop.
Yes, run() should be called often,
No, that doesn't mean you need to call run() from every function.
If a function has its own loop that takes any length of time, you are implementing a delay - that's
not how to write code for AccelStepper. The loop() function should be the only event loop.
(*) subfunction has a technical meaning here.