 const int SelectCD = 49; // Select IC 3 DAC (channels C and D)
 const int SelectAB = 53; // Select IC 2 DAC (channels A and B)
 
-const unsigned long INVALID_DATA = 0;
 volatile int rc_index = 0;
-volatile unsigned long RC_rise[7];
-volatile unsigned long RC_elapsed[7];
+// This is a value that the RC controller can't produce.
+#define INVALID_DATA 0L
+// How many RC signals we receive
+#define RC_NUM_SIGNALS 7
+volatile unsigned long RC_rise[RC_NUM_SIGNALS];
+volatile unsigned long RC_elapsed[RC_NUM_SIGNALS];
+// We'll copy values here before using them in an attempt to have the
+// values change while we're using them.
+unsigned long local_results[RC_NUM_SIGNALS];
+// This tells us when we have started receiving RC data. Until then, we
+// ignore RC_rise and RC_elapsed.
+volatile bool RC_Done[RC_NUM_SIGNALS];
 volatile boolean synced = false;
-volatile unsigned long last_fallingedge_time = 4294967295; // max long
-volatile bool RC_Done[7] = {0, 0, 0, 0, 0, 0, 0};
 volatile bool flipping;
 
 long speed_errors[ERROR_HISTORY];
 long old_turn_degx1000;
-unsigned long calibrationTime_ms;
-unsigned long stoppedTime_ms;
-unsigned long straightTime_ms;
+// @ToDo: Remove calibration and test code to its own file.
+//unsigned long calibrationTime_ms;
+//unsigned long stoppedTime_ms;
+//unsigned long straightTime_ms;
 int  throttle_control = MIN_ACC_OUT;
 int  brake_control = MIN_BRAKE_OUT;
 int  steer_control = STRAIGHT_TURN_OUT;

  Serial.println("(m) Distance");
}

/*---------------------------------------------------------------------------------------*/
//circleRoutine
void circleRoutine(unsigned long seconds, unsigned long &rcAuto) {

  return new_turn_degx10;
}
/*---------------------------------------------------------------------------------------*/
// @ToDo: Is this a work in progress?
void newThrottlePID(){
  
}
