Skip to main content
cleanup for readability
Source Link
J0e3gan
  • 9k
  • 10
  • 58
  • 81

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--;
}

i have following code for running 3 steppers at a time with different number of steps n1,n2 and n3.following code does not run n3 motor if used as follows,but if we remove if codition thenn 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--;
}

I have the following code for running 3 steppers at a time with different numbers of steps n1, n2 and n3. It does not run the n3 motor if used as follows, but if we remove the 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--;
}
added 222 characters in body
Source Link
Jack
  • 133.8k
  • 33
  • 252
  • 349

i have following code for running 3 steppers at a time with different number of steps n1,n2 and n3.following code does not run n3 motor if used as follows,but if we remove if codition thenn it runs.

`

int n1=0;n1 = 0;
int n2=0;n2 = 0;
int n3=100n3 = 100
while (n1>0n1 > 0 || n2>0n2 > 0 || n3>0n3 > 0)
  {
    if (n3>0n3 > 0 && n1==0n1 == 0 && n2==0n2 == 0)
  {
        current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
        new_port_value = (current_port_value &~0X02& ~0X02);
        XGpio_DiscreteWrite(&GpioOutput & GpioOutput, LED_CHANNEL, new_port_value);
        current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
        new_port_value = (current_port_value |0X04| 0X04);
        XGpio_DiscreteWrite(&GpioOutput & GpioOutput, LED_CHANNEL, new_port_value);
        current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
        new_port_value = (current_port_value |0X08| 0X08);
        XGpio_DiscreteWrite(&GpioOutput & GpioOutput, LED_CHANNEL, new_port_value);
        current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
        new_port_value = (current_port_value | 0X40);
        XGpio_DiscreteWrite(&GpioOutput & GpioOutput, LED_CHANNEL, new_port_value);
        current_port_value = XGpio_DiscreteRead(&GpioOutput, LED_CHANNEL);
        new_port_value = (current_port_value | 0X80);
        XGpio_DiscreteWrite(&GpioOutput & 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& ~0X80);
        XGpio_DiscreteWrite(&GpioOutput & GpioOutput, LED_CHANNEL, new_port_value);
        for (Delay = 0; Delay < LED_DELAY; Delay++); 
    }
    n1-- ;
    n2-- ;
    n3-- ;  
 }

`

i have following code for running 3 steppers at a time with different number of steps n1,n2 and n3.following code does not run n3 motor if used as follows,but if we remove if codition thenn 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-- ;  
 }

`

i have following code for running 3 steppers at a time with different number of steps n1,n2 and n3.following code does not run n3 motor if used as follows,but if we remove if codition thenn 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--;
}
Source Link

if and else if conditons inside a while loop

i have following code for running 3 steppers at a time with different number of steps n1,n2 and n3.following code does not run n3 motor if used as follows,but if we remove if codition thenn 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-- ;  
 }

`