Ich Suche schon ewig nach einem Fehler, in einem Programmabschnitt. Ich habe 4 Joysticks die mit denen ich 4 Schrittmotoren ansteuern kann, jetzt war es bisher so das die Schrittgeschwindigkeit extrem langsam war . Jetzt hab ich zu Versuchszwecke mal über diese Kette eine while(1) schleife gesetzt und siehe da alles funktioniert so wie es soll.
Problem ist das ich jetzt nicht mehr aus der schleife komme(ist ja logisch) und auch keine Bedingung dafür finde, das Verständnis zu den Erklärungen der Funktionen auf http://www.airspayce.com/mikem/ardui...e9373eb14c69c1 liegt auch nur bei 50%.
Kann mir mal wer erklären wieso es mit der while schleife zügig funktioniert und ohne nicht ?
void Joystick()
{
while(1)
{
int analog_in0 = (512 - analogRead(ANALOG_IN0));
int analog_in1 = (512 - analogRead(ANALOG_IN1));
int analog_in2 = (512 - analogRead(ANALOG_IN2));
int analog_in3 = (512 - analogRead(ANALOG_IN3));
int AN0, AN01;
int AN1, AN11;
int AN2, AN21;
int AN3, AN31;
//.......Stepper1..........//
if (analog_in0 >= 35 )
{
AN0 = exp(analog_in0 / 67);
Stepper0.setSpeed(AN0) ;
Stepper0.runSpeed();
}
else if (analog_in0 <= -35)
{
AN01 = exp(-analog_in0 / 67);
Stepper0.setSpeed(-AN01) ;
Stepper0.runSpeed();
}
//........Stepper2...........//
else if (analog_in1 >= 35 )
{
AN1 = exp(analog_in1 / 67 );
Stepper1.setSpeed(AN1) ;
Stepper1.runSpeed();
}
else if (analog_in1 <= -35)
{
AN11 = exp(-analog_in1 / 67 );
Stepper1.setSpeed(-AN11) ;
Stepper1.runSpeed();
}
//..........Stepper3..........//
else if (analog_in2 >= 35)
{
AN2 = exp (analog_in2 / 67);
Stepper2.setSpeed(AN2) ;
Stepper2.runSpeed();
}
else if (analog_in2 <= -35)
{
AN21 = exp (-analog_in2 / 67);
Stepper2.setSpeed(-AN21) ;
Stepper2.runSpeed();
}
//............Stepper4...........//
else if (analog_in3 >= 35 )
{
AN3 = exp (analog_in3 / 67);
Stepper3.setSpeed(AN3) ;
Stepper3.runSpeed();
}
else if (analog_in3 <= -35)
{
AN31 = exp (-analog_in3 / 67 );
Stepper3.setSpeed(-AN31) ;
Stepper3.runSpeed();
}
}
}
Gruß
Lesezeichen