I have only started programming in the last year, and I haven’t done too much advanced programming, and I have been running into a few problems, such as when using Btn8RXmtr2 the program has been working, however when using Btn7LXmtr2 that piece of programming doesn’t work and results in the arm jerking back and forth. Any help would be appreciated.
#pragma config(Sensor, in1, Arm, sensorPotentiometer)
#pragma config(Sensor, in2, Cone, sensorPotentiometer)
#pragma config(Sensor, dgtl1, DP12, sensorQuadEncoder)
#pragma config(Sensor, dgtl11, DP1112, sensorQuadEncoder)
#pragma config(Motor, port1, leftdriveback, tmotorVex393_HBridge, openLoop, driveLeft)
#pragma config(Motor, port2, leftdrivefront, tmotorVex393_MC29, openLoop, driveLeft)
#pragma config(Motor, port3, leftarm, tmotorVex393_MC29, openLoop, reversed)
#pragma config(Motor, port4, L1, tmotorVex393_MC29, openLoop)
#pragma config(Motor, port5, L2R2, tmotorVex393_MC29, openLoop)
#pragma config(Motor, port6, intake, tmotorVex393_MC29, openLoop)
#pragma config(Motor, port7, R1, tmotorVex393_MC29, openLoop, reversed)
#pragma config(Motor, port8, rightarm, tmotorVex393_MC29, openLoop)
#pragma config(Motor, port9, rightdrivefront, tmotorVex393_MC29, openLoop, reversed, driveRight)
#pragma config(Motor, port10, rightdriveback, tmotorVex393_HBridge, openLoop, reversed, driveRight)
task usercontrol()
{
// User control code here, inside the loop
while (true)
{
if(vexRT[Btn5D] == 1) //Makes robot blow up
{
motor[rightdrivefront] = vexRT[Ch3] - vexRT[Ch4];
motor[rightdriveback] = vexRT[Ch3] - vexRT[Ch4];
motor[leftdrivefront] = vexRT[Ch3] + vexRT[Ch4];
motor[leftdriveback] = vexRT[Ch3] + vexRT[Ch4];
if(vexRT[Btn7U] == 1)
{
motor[rightarm] = 127;
}
else if(vexRT[Btn7D] == 1)
{
motor[rightarm] = -127;
}
else
{
motor[rightarm] = vexRT[Ch2];
}
if(vexRT[Btn8U] == 1)
{
motor[leftarm] = 127;
}
else if(vexRT[Btn8D] == 1)
{
motor[leftarm] = -127;
}
else
{
motor[leftarm] = vexRT[Ch2];
}
if(vexRT[Btn7LXmtr2] == 1)
{
if(SensorValue[Cone] < 2680)
{
motor[L1] = 127;
motor[R1] = 127;
motor[intake] = 23;
}
else if(SensorValue[Cone] > 2680)
{
motor[L1] = -23;
motor[R1] = -23;
motor[intake] = 23;
wait1Msec(800);
motor[L1] = -23;
motor[R1] = -23;
motor[intake] = -127;
wait1Msec(1000);
motor[L1] = -127;
motor[R1] = -127;
motor[intake] = 0;
wait1Msec(500);
motor[L1] = 23;
motor[R1] = 23;
wait1Msec(500);
}
}
else
{
motor[L1] = vexRT[Ch2Xmtr2];
motor[R1] = vexRT[Ch2Xmtr2];
motor[intake] = vexRT[Ch3Xmtr2];
}
if(vexRT[Btn8RXmtr2] == 1)
{
if(SensorValue[Arm] < 1000)
{
motor[L1] = 50;
motor[R1] = 50;
motor[intake] = 63;
motor[leftarm] = -127;
motor[rightarm] = -127;
}
else if(SensorValue[Cone] < 2680)
{
motor[L1] = 127;
motor[R1] = 127;
motor[intake] = 23;
motor[leftarm] = -25;
motor[rightarm] = -25;
}
else if(SensorValue[Cone] > 2680)
{
motor[L1] = -23;
motor[R1] = -23;
motor[leftarm] = -25;
motor[rightarm] = -25;
motor[intake] = 23;
wait1Msec(800);
motor[L1] = -23;
motor[R1] = -23;
motor[leftarm] = -25;
motor[rightarm] = -25;
motor[intake] = -127;
wait1Msec(1000);
motor[L1] = -127;
motor[R1] = -127;
motor[leftarm] = 0;
motor[rightarm] = 0;
motor[intake] = 0;
wait1Msec(500);
motor[L1] = 23;
motor[R1] = 23;
wait1Msec(500);
}
}
else
{
motor[L1] = vexRT[Ch2Xmtr2];
motor[R1] = vexRT[Ch2Xmtr2];
motor[intake] = vexRT[Ch3Xmtr2];
motor[leftarm] = vexRT[Ch2];
motor[rightarm] = vexRT[Ch2];
}
}
else
{
motor[rightdrivefront] = - vexRT[Ch3] - vexRT[Ch4];
motor[rightdriveback] = - vexRT[Ch3] - vexRT[Ch4];
motor[leftdrivefront] = - vexRT[Ch3] + vexRT[Ch4];
motor[leftdriveback] = - vexRT[Ch3] + vexRT[Ch4];
if(vexRT[Btn8U] == 1)
{
motor[rightarm] = 127;
}
else if(vexRT[Btn8D] == 1)
{
motor[rightarm] = -127;
}
else
{
motor[rightarm] = vexRT[Ch2];
}
if(vexRT[Btn7U] == 1)
{
motor[leftarm] = 127;
}
else if(vexRT[Btn7D] == 1)
{
motor[leftarm] = -127;
}
else
{
motor[leftarm] = vexRT[Ch2];
}
if(vexRT[Btn7LXmtr2] == 1)
{
if(SensorValue[Cone] < 2680)
{
motor[L1] = 127;
motor[R1] = 127;
motor[intake] = 23;
}
else if(SensorValue[Cone] > 2680)
{
motor[L1] = -23;
motor[R1] = -23;
motor[intake] = 23;
wait1Msec(800);
motor[L1] = -23;
motor[R1] = -23;
motor[intake] = -127;
wait1Msec(1000);
motor[L1] = -127;
motor[R1] = -127;
motor[intake] = 0;
wait1Msec(500);
motor[L1] = 23;
motor[R1] = 23;
wait1Msec(500);
}
}
else
{
motor[L1] = vexRT[Ch2Xmtr2];
motor[R1] = vexRT[Ch2Xmtr2];
motor[intake] = vexRT[Ch3Xmtr2];
}
if(vexRT[Btn8RXmtr2] == 1)
{
if(SensorValue[Arm] < 1000)
{
motor[L1] = 50;
motor[R1] = 50;
motor[intake] = 63;
motor[leftarm] = -127;
motor[rightarm] = -127;
}
else if(SensorValue[Cone] < 2680)
{
motor[L1] = 127;
motor[R1] = 127;
motor[intake] = 23;
motor[leftarm] = -25;
motor[rightarm] = -25;
}
else if(SensorValue[Cone] > 2680)
{
motor[L1] = -23;
motor[R1] = -23;
motor[leftarm] = -25;
motor[rightarm] = -25;
motor[intake] = 23;
wait1Msec(800);
motor[L1] = -23;
motor[R1] = -23;
motor[leftarm] = -25;
motor[rightarm] = -25;
motor[intake] = -127;
wait1Msec(1000);
motor[L1] = -127;
motor[R1] = -127;
motor[leftarm] = 0;
motor[rightarm] = 0;
motor[intake] = 0;
wait1Msec(500);
motor[L1] = 23;
motor[R1] = 23;
wait1Msec(500);
}
}
else
{
motor[L1] = vexRT[Ch2Xmtr2];
motor[R1] = vexRT[Ch2Xmtr2];
motor[intake] = vexRT[Ch3Xmtr2];
motor[leftarm] = vexRT[Ch2];
motor[rightarm] = vexRT[Ch2];
}
}
}
}