Ihr wisst sehr viel,

aber klarer wird es mir dadurch nicht.

Daher noch mal:

"else if (dir == 1 && (micros() - M2_microsalt) > Schrittdauer) "

Bitte möglichst eine konkrete Antwort.

M2_microsalt als .....
Schrittdauer als .....

die Schrittdauer, das habe ich vorher was falsche angegeben, hat eine Größenordnung von 400 us bis 20ms

vG

fredyxx