iI have the following code for running 3 steppers at a time with different numbernumbers of steps n1n1,n2 n2 and n3n3.following code It does not run n3the n3 motor if used as follows,but but if we remove if codition thennthe if condition then it runs.
int n1 = 0;
int n2 = 0;
int n3 = 100
while (n1 > 0 || n2 > 0 || n3 > 0) {
if (n3 > 0 && n1 == 0 && n2 == 0) {
current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
new_port_value = (current_port_value & ~0X02);
XGpio_DiscreteWrite( & GpioOutput, LED_CHANNEL, new_port_value);
current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
new_port_value = (current_port_value | 0X04);
XGpio_DiscreteWrite( & GpioOutput, LED_CHANNEL, new_port_value);
current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
new_port_value = (current_port_value | 0X08);
XGpio_DiscreteWrite( & GpioOutput, LED_CHANNEL, new_port_value);
current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
new_port_value = (current_port_value | 0X40);
XGpio_DiscreteWrite( & GpioOutput, LED_CHANNEL, new_port_value);
current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
new_port_value = (current_port_value | 0X80);
XGpio_DiscreteWrite( & GpioOutput, LED_CHANNEL, new_port_value);
for (Delay = 0; Delay < LED_DELAY; Delay++);
current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
new_port_value = (current_port_value & ~0X80);
XGpio_DiscreteWrite( & GpioOutput, LED_CHANNEL, new_port_value);
for (Delay = 0; Delay < LED_DELAY; Delay++);
}
n1--;
n2--;
n3--;
}