 void fireCoil()
 {
   chargeCoil();
-  delayMicroseconds(dwell);
+  delayAtLeast(dwell);
   dischargeCoil();
 }
 

  }
}

void fireMultiple()
{
  fireCoil();
  for(int i = 1; i < multiCount; i++)
  {
    delayMicroseconds(multiDelay);
    fireCoil();
  }
}

  active = isActive();
}

// -------------------------
// Generic Utility Functions
// -------------------------
void delayFixed(unsigned long milliseconds)
{
  if (milliseconds = 0)
    return;
  else if (milliseconds < 16)
    delayAtLeast(milliseconds * 1000);
  else
    delay(milliseconds);
}

void delayAtLeast(unsigned long microseconds)
{
  unsigned long target = micros() + microseconds;
  while (micros() < target)
    ;
}

long readInternalTemp() 
