View Full Version : [FTC]: Buttons RobotC
JohnFogarty
25-11-2009, 09:29
I am trying to assign buttons to control a Tetrix DC motor when ever i assign 2 functions to control the same motor say one button forward and one backward the motor coughs and jumps and vibrates moving spastically. I attached the code below, how could i solve this problem?
if(joy2Btn(2) )
{
motor[motorF] = 100;
}
else
{
motor[motorF] = 0;
}
if(joy2Btn(1) )
{
motor[motorF] = -100;
}
else
{
motor[motorF] = 0;
}
Let's break this down step by step:
if(joy2Btn(2) )
{
motor[motorF] = 100;
}
else
{
motor[motorF] = 0;
}
What the above "if" is saying is "If Button 2 on Joystick 2 is pushed, set power to motorF to 100%. Otherwise, set it to 0".
if(joy2Btn(1) )
{
motor[motorF] = -100;
}
else
{
motor[motorF] = 0;
}
This one is saying "if Button 1 on Joystick 2 is pushed, set power to motorF to 100% in reverse. Otherwise, set it to 0".
The problem is not with the if (true) conditions, it's the else conditions that are conflicting with each other. If Button 1 is pressed, then button might or might be pressed, so motorF shouldn't go (the else conditions). Likewise for Button 2.
A better way to right the code is:
if (joy2Btn(1))
{
motor[motorF] = -100;
}
else if (joy2Btn(2))
{
motor[motorF] = 100;
}
else
{
motor[motorF] = 0;
}
Since the target of the conditional test is the same resource (motorF), you'll have to keep the tests with the target in one condition.
Good luck!
JohnFogarty
25-11-2009, 19:13
Let's break this down step by step:
What the above "if" is saying is "If Button 2 on Joystick 2 is pushed, set power to motorF to 100%. Otherwise, set it to 0".
This one is saying "if Button 1 on Joystick 2 is pushed, set power to motorF to 100% in reverse. Otherwise, set it to 0".
The problem is not with the if (true) conditions, it's the else conditions that are conflicting with each other. If Button 1 is pressed, then button might or might be pressed, so motorF shouldn't go (the else conditions). Likewise for Button 2.
A better way to right the code is:
if (joy2Btn(1))
{
motor[motorF] = -100;
}
else if (joy2Btn(2))
{
motor[motorF] = 100;
}
else
{
motor[motorF] = 0;
}
Since the target of the conditional test is the same resource (motorF), you'll have to keep the tests with the target in one condition.
Good luck!
Thanks this worked perfectly
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.