   
   //Calculate Weighted Average
   unsigned long average = (3*tachDuration0 + 2*tachDuration1 + 1*tachDuration2)/6;
+  interrupts();
+  
   return 60.0 * 1000000 / average;
 }
 
 void enableCoil()
 {
   //Enable Coil Firing
-  ignitionMode = WAIT;
+  ignitionMode = DWELL;
+  updateTimer = true;
 }
 
 void disableCoil()
 {
   //Disable Coil Firing
-  Timer1.stop();
   ignitionMode = OFF;
+  updateTimer = true;
 }
 
 void chargeCoil()

    Serial.print("ms, RPM: ");
    Serial.print(rpm);
    Serial.println();
  }
}

// -------------------------

        break;
      case MF_DWELL:
        //Charging Coil
        chargeCoil();
        Timer1.attachInterrupt(ISR_IGNITION, dwell);
        Timer1.start();
        break;
