Here is my code that basically, it decreases the time between steps ON/OFF for every rotation of the stepper. Using the for loop and decreasing "Z" witch is time ON/OFF.
#define dirPin 8
#define stepPin 9
#define dirPin1 4
#define stepPin1 5
const int NofSteps=3200;
const int StepXrev=400;
float RPM=300;
float z=(((60/RPM)/(StepXrev))/(2))*1000000;
int f=0;
int i=25;
void setup() {
pinMode(dirPin, OUTPUT);
digitalWrite(dirPin, LOW);
pinMode(stepPin, OUTPUT);
pinMode(dirPin1, OUTPUT);
digitalWrite(dirPin1, LOW);
pinMode(stepPin1, OUTPUT);
}
void loop() {
for(int n=0;n<NofSteps;n++){
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin1, HIGH);
delayMicroseconds(z);
digitalWrite(stepPin, LOW);
digitalWrite(stepPin1, LOW);
delayMicroseconds(z);
} f=f+i;
for(int n=0;n<NofSteps;n++){
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin1, HIGH);
delayMicroseconds(z-f);
digitalWrite(stepPin, LOW);
digitalWrite(stepPin1, LOW);
delayMicroseconds(z-f);
} f=f+i;
for(int n=0;n<NofSteps;n++){
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin1, HIGH);
delayMicroseconds(z-f);
digitalWrite(stepPin, LOW);
digitalWrite(stepPin1, LOW);
delayMicroseconds(z-f);
} f=f+i;
for(int n=0;n<NofSteps;n++){
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin1, HIGH);
delayMicroseconds(z-f);
digitalWrite(stepPin, LOW);
digitalWrite(stepPin1, LOW);
delayMicroseconds(z-f);
} f=f+i;
for(int n=0;n<NofSteps;n++){
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin1, HIGH);
delayMicroseconds(z-f);
digitalWrite(stepPin, LOW);
digitalWrite(stepPin1, LOW);
delayMicroseconds(z-f);
}
f=f+i;
for(int n=0;n<NofSteps;n++){
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin1, HIGH);
delayMicroseconds(z-f);
digitalWrite(stepPin, LOW);
digitalWrite(stepPin1, LOW);
delayMicroseconds(z-f);
}
f=f+i;
for(int n=0;n<100000;n++){
digitalWrite(stepPin, HIGH);
digitalWrite(stepPin1, HIGH);
delayMicroseconds(z-f);
digitalWrite(stepPin, LOW);
digitalWrite(stepPin1, LOW);
delayMicroseconds(z-f);
}
f=0;
}//.8sec/rev