Servo Programming Again.....

i have a question about servos used for shifting… This si the code i came up with and i need some verification… will the servo stay in the position if the top switch is hit will it stay at 255? what if the trigger is hit, how can i make it stay at either 255 or 0? DO ALL I NEED TO DO IS CHANGE THE FIRST 2 127’S TO 255 AND THE SECOND 127’S TO 0? I want the servos to stay in the position relating to what button was pushed?

if ((p1_sw_top == 1)) // If Top Button on Joystick 1 is hit
{ // Make the two servos…
pwm15 = 255;
pwm16 = 255;
}
else
{
pwm15 = 127;
pwm16 = 127;
}
if ((p1_sw_trig == 1)) // If Trigger is pushed on Joystick 1
{ // Make the two servos…
pwm15 = 0;
pwm16 = 0;
}
else
{
pwm15 = 127;
pwm16 = 127;
}

Any help would be appreciated. Thank You

I can see a potential run time error in your code. You want to set up one conditional block which handles everything instead of the two. With the two blocks, the output of the first block will always be overwritten by the second.

Something like

if (Trigger == 1)
pwm15 = 255
else if (Top == 1)
pwm15 = 0
else
pwm15 = 127

Thats really pseudo code, so you need to replace the variables with your own. The logics behind it is what is important.

To answer your question, no. The servo will not remain in that position if the the trigger is released. You need to set up a variable that is set to a value when the trigger is pressed and that variable will then be checked in the conditionals.

Two years ago, I set up an auto targeting system that was engaged by the trigger on the joystick. We set a variable to a number then multiplied it by -1 if the trigger was depressed. The conditional would then check to see if the variable was greater or less than 0 which would determine the status of the system (On or Off). Similarly, you could try something for your problem. Feel free to PM for more info.