Driver Motore Passo Passo

Ciao,
vediamo se ho chiaro il concetto:
associo le seguenti uscite di Arduino e faccio le seguenti operazioni:

//Imposto i valori fissi
OUT1=MS1=Low
OUT2=MS2=Low
OUT3=MS3=Low
OUT4=Enable=High
OUT5=Reset=High

//specifico la direzione
attendo 200ns;
OUT6=DIR=High;
attendo 1000ns;
OUT6=DIR=Low;
attendo 200ns;

//effettuo il passo
OUT7=STEP=High;
attendo 1000ns;
OUT7=STEP=Low;
attendo 1000ns;

1)Avendo scelto Full Step, se ripeto l'ultimo blocco per altre 199 volte ho fatto completare un giro di 360 gradi al motore?
2)La logica e' corretta?
3)Con il linguaggio di programmazione di Arduino, riesco ad attendere per 200ns (meno di un microsecondo)?

Grazie.