 } history;
 
 /*---------------------------------------------------------------------------------------*/
-// WheelRev is called by an interrupt pin.
+// WheelRev is called by an interrupt.
+// This is all WAY TOO LONG for an interrupt
 void WheelRev()
 {
   //static int flip = 0;

/*---------------------------------------------------------------------------------------*/
//squareRoutine
void squareRoutine(unsigned long seconds, unsigned long &results) {
  results = HIGH;
  long straightSpeed = 2500;
  long turnSpeed = 1250;
  unsigned long startTime = millis();
  seconds = seconds * 1000; 
  while(millis() < (startTime + seconds)){
    //steer(LEFT_TURN_OUT);
    steer(STRAIGHT_TURN_OUT);
    delay(1000);
    
    unsigned long loopTime = millis();
    while (millis() < (loopTime + 2000)) {
      Throttle_PID(straightSpeed);
    }

int max_rc = MAX_RC;
int mid = MIDDLE;
int min_rc = MIN_RC;
#define LED_PIN_OUT 16
//==========================================================================================
void ISR_TURN_rise() {
  noInterrupts();
