So…when I run the code, it prints all 4 motor temperatures and velocity along with the battery percentage. But the driver input control has 1-2 second of lag between when I move the joysticks to when the robot actually moves. I commented all the code that prints to the controller and the lag disappears. How can I print to the controller and not have input lag at the same time?
// VEX V5 C++ Project
#include "vex.h"
using namespace vex;
//#region config_globals
vex::brain Brain;
vex::motor FrontLeft(vex::PORT1, vex::gearSetting::ratio18_1, false);
vex::motor FrontRight(vex::PORT10, vex::gearSetting::ratio18_1, true);
vex::motor BackLeft(vex::PORT11, vex::gearSetting::ratio18_1, false);
vex::motor BackRight(vex::PORT20, vex::gearSetting::ratio18_1, true);
vex::controller Controller1(vex::controllerType::primary);
//#endregion config_globals
int main(void) {
while(1){
Controller1.Screen.setCursor(1,1);
Controller1.Screen.print(FrontLeft.temperature(celsius));
Controller1.Screen.print(" ");
Controller1.Screen.setCursor(1,12);
Controller1.Screen.print(FrontLeft.velocity(pct));
Controller1.Screen.print(" ");
Controller1.Screen.setCursor(2,1);
Controller1.Screen.print(FrontLeft.temperature(celsius));
Controller1.Screen.print(" ");
Controller1.Screen.setCursor(2,12);
Controller1.Screen.print(FrontLeft.velocity(pct));
Controller1.Screen.print(" ");
Controller1.Screen.setCursor(3,2);
Controller1.Screen.print("Battery % full", (Brain.Battery.capacity())*100);
if(Controller1.Axis2.value() > 1){//Move Forward
FrontLeft.spin(forward, 75, vex::velocityUnits(pct));
FrontRight.spin(forward, 75, vex::velocityUnits(pct));
BackLeft.spin(forward, 75, vex::velocityUnits(pct));
BackRight.spin(forward, 75, vex::velocityUnits(pct));
}
else if(Controller1.Axis2.value() < -1){//Move Backward
FrontLeft.spin(forward, 75, vex::velocityUnits(pct));
FrontRight.spin(forward, 75, vex::velocityUnits(pct));
BackLeft.spin(forward, 75, vex::velocityUnits(pct));
BackRight.spin(forward, 75, vex::velocityUnits(pct));
}
else if(Controller1.Axis4.value() > 1){//Turn Left
FrontLeft.spin(reverse, 75, vex::velocityUnits(pct));
FrontRight.spin(forward, 75, vex::velocityUnits(pct));
BackLeft.spin(reverse, 75, vex::velocityUnits(pct));
BackRight.spin(forward, 75, vex::velocityUnits(pct));
}
else if(Controller1.Axis4.value() < -1){//Turn Right
FrontLeft.spin(forward, 75, vex::velocityUnits(pct));
FrontRight.spin(reverse, 75, vex::velocityUnits(pct));
BackLeft.spin(forward, 75, vex::velocityUnits(pct));
BackRight.spin(reverse, 75, vex::velocityUnits(pct));
}
else{
FrontLeft.stop();
FrontRight.stop();
BackLeft.stop();
BackRight.stop();
}
vex::sleep(1);
}
}