Log in

View Full Version : problem while programming 2 bottuns in windriver


mahmosh
12-02-2009, 09:12
hey
we are trying to do 2 buttons for the same motor if button 1 pressed move forward .. else stop ... and then if button 2 pressed move backward else stop
here is the code we are using but it doesn't work well :

in the operatorcontrol we put this:
if(leftjoystick->GetRawButton(1));
{
jaguar->Set(1.0);
}
else{
jaguar->Set(0.0);
}

if(leftjoystick->GetRawButton(2));
{
jaguar->Set(-1.0);
}
else{
jaguar->Set(0.0);
}
what is the problem with this ?? if we deleted the second part

if(leftjoystick->GetRawButton(2));
{
jaguar->Set(-1.0);
}
else{
jaguar->Set(0.0);
}
everything working ok!!

please need answer

wt200999
12-02-2009, 09:27
Its a logic error, if you hold down button 1, then that will set the motor to 1, then since button 2 is not held down it will go to that else which will set it back to 0.

JBotAlan
12-02-2009, 09:42
Because you have two separate if...else statements, if the reverse button isn't held down, the output will be zero regardless of the forward button's state.

Also, this:
if (condition);
has no code to execute because of that trailing semicolon. An "if" will execute the statement immediately after it up until a semicolon, or if you put the code inside {curly braces}, it will execute everything in the first set of braces. If statements don't need any additional semicolons.

A quick rewrite yields this:

if(leftjoystick->GetRawButton(1))
{
jaguar->Set(1.0);
}
else if (leftjoystick->GetRawButton(2)) {
jaguar->Set(-1.0);
} else {
jaguar->Set(0.0);
}

That will work.

Alan Anderson let me know that I messed up. I misread your code snippet: I didn't realize that the reverse button would drive the motor in reverse... (crosses eyes) I really need some more sleep.

Let me know if you have any more questions or problems.

Jacob

mahmosh
12-02-2009, 12:25
thank you :D it works well .... if i have any questions i will ask here