I’m having trouble using my lcd in pre_auton. I’m using a
while(vrDisabled == 1)
to run it but it is giving me a minor error (‘while’ expression is constant ‘false’. Loop never executed) and chooses not to run it, instead it displays that the robot is disabled and a count for how long it had been disabled. I have tried just changing the while loop to true, but then it never enters autonomous or driver control.
vrDisabled is the wrong thing to be using, the correct code would be;
while(bIfiRobotDisabled) {
// Run some code
}
I’m not sure where you found the vrDisabled flag, that would be used with the variable nVexRCReceiveState to manually check the raw data. vrDisabled is more or less a constant (it’s part of an enumerated type), here is the definition from the header file.
typedef enum
{
vrNoXmiters = 0, // No transmitters connected
vrXmit1 = 0x01, // 1 == Transmitter 1 connected
vrXmit2 = 0x02, // 1 == Transmitter 2 connected
vrBit2 = 0x04, // Unused
vrCompetitionSwitch = 0x08, // 0 == No Comp Switch 1 == Competition Switch attached.
vrResetSlave = 0x10, // Unused
vrGameController = 0x20, // 0 == Legacy75MHz, 1 == Game Controller
vrAutonomousMode = 0x40, // 0 == Driver Control, 1 == Autonomous Mode
vrDisabled = 0x80, // 0 == Enabled 1 == Disabled.
} TVexReceiverState;
It has the value 0x80 (which is 128 in decimal) so a statement like
if(vrDisabled == 1)
will never be true as 128 is not equal to 1.
Thank you so much, now I can select our autonomous and see all the debugging data we need. Problems solved.
Thanks @jpearman, That was my team’s programmer asking the question, and you helped him a ton. He’s a first year programmer and he’s is so much more confident programming knowing that he can ask questions here.