Add 'main.c'
parent
338c83dea2
commit
597cd06c90
@ -0,0 +1,101 @@
|
|||||||
|
#pragma config(I2C_Usage, I2C1, i2cSensors)
|
||||||
|
#pragma config(Sensor, I2C_1, , sensorQuadEncoderOnI2CPort, , AutoAssign )
|
||||||
|
#pragma config(Sensor, I2C_2, , sensorQuadEncoderOnI2CPort, , AutoAssign )
|
||||||
|
#pragma config(Motor, port1, , tmotorVex393_HBridge, openLoop)
|
||||||
|
#pragma config(Motor, port2, shoot, tmotorVex393_MC29, openLoop, reversed)
|
||||||
|
#pragma config(Motor, port3, driveLB, tmotorVex393_MC29, openLoop, reversed, encoderPort, I2C_1)
|
||||||
|
#pragma config(Motor, port4, driveLF, tmotorVex393_MC29, openLoop, reversed)
|
||||||
|
#pragma config(Motor, port5, driveRB, tmotorVex393_MC29, openLoop, reversed, encoderPort, I2C_2)
|
||||||
|
#pragma config(Motor, port6, driveRF, tmotorVex393_MC29, openLoop)
|
||||||
|
#pragma config(Motor, port7, bintake, tmotorVex393_MC29, openLoop, reversed)
|
||||||
|
#pragma config(Motor, port8, , tmotorVex393_MC29, openLoop)
|
||||||
|
#pragma config(Motor, port9, , tmotorVex393_MC29, openLoop)
|
||||||
|
#pragma config(Motor, port10, , tmotorVex393_HBridge, openLoop)
|
||||||
|
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//
|
||||||
|
|
||||||
|
#pragma platform(VEX2)
|
||||||
|
#pragma competitionControl(Competition)
|
||||||
|
#include "Vex_Competition_Includes.c"
|
||||||
|
|
||||||
|
// some variable definitions
|
||||||
|
#define MAX_SPEED 127
|
||||||
|
#define STOP 0
|
||||||
|
#define DEADZONE 10
|
||||||
|
|
||||||
|
/*
|
||||||
|
23.4 / (2 * pi * 2.075) * 360
|
||||||
|
23.4 = inches in a tile
|
||||||
|
2.075 = exact radius of 4" omniwheels
|
||||||
|
2 * pi * r is circumference of the wheel
|
||||||
|
360 degrees in a circle
|
||||||
|
final calculation is the amount of degrees of rotation per tile of movement
|
||||||
|
*/
|
||||||
|
#define TILE 646
|
||||||
|
|
||||||
|
void shootBall() {
|
||||||
|
motor[shoot] = MAX_SPEED;
|
||||||
|
wait(1.25); // Shooting takes 1.25 seconds.
|
||||||
|
motor[shoot] = STOP;
|
||||||
|
}
|
||||||
|
|
||||||
|
void joystickDrive() {
|
||||||
|
if(abs(vexRT[Ch3]) > DEADZONE) {
|
||||||
|
motor[driveLB] = vexRT[Ch3];
|
||||||
|
motor[driveLF] = vexRT[Ch3];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
motor[driveLB] = STOP;
|
||||||
|
motor[driveLF] = STOP;
|
||||||
|
}
|
||||||
|
if(abs(vexRT[Ch2]) > DEADZONE) {
|
||||||
|
motor[driveRB] = vexRT[Ch2];
|
||||||
|
motor[driveRF] = vexRT[Ch2];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
motor[driveRB] = STOP;
|
||||||
|
motor[driveRF] = STOP;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void buttonChecks() {
|
||||||
|
if (vexRT[Btn5U] == 1) {
|
||||||
|
motor[bintake] = MAX_SPEED;
|
||||||
|
}
|
||||||
|
else if (vexRT[Btn5D] == 1) {
|
||||||
|
motor[bintake] = -MAX_SPEED;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
motor[bintake] = STOP;
|
||||||
|
}
|
||||||
|
//Flipper Code
|
||||||
|
if (vexRT[Btn8D] == 1) {
|
||||||
|
shootBall();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void pre_auton() {
|
||||||
|
/* Set bStopTasksBetweenModes to false if you want to keep user created tasks
|
||||||
|
running between Autonomous and Driver controlled modes. You will need to
|
||||||
|
manage all user created tasks if set to false. */
|
||||||
|
bStopTasksBetweenModes = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void driveTiles(int numberOfTiles) {
|
||||||
|
while(numberOfTiles * TILE > nMotorEncoder[1]) [
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
task autonomous() {
|
||||||
|
shootBall();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
task usercontrol() {
|
||||||
|
while (true) {
|
||||||
|
//Dual Driving
|
||||||
|
joystickDrive();
|
||||||
|
buttonChecks();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue