MPU9150, ist der Interrupt nötig?

Hallo zusammen,
ich benutze für mein Quadrocopter-Projekt folgenden Code zum Auslesen des MPU9150.

void getMPU() {

	if (!dmpReady) return;		 // if programming failed, don't try to do anything
        while (!mpuInterrupt && fifoCount < packetSize) {
        // other program behavior stuff here
       }

    mpuInterrupt = false;			// reset interrupt flag and get INT_STATUS byte
    mpuIntStatus = mpu.getIntStatus();   
    fifoCount = mpu.getFIFOCount();				 // get current FIFO count

    if ((mpuIntStatus & 0x10) || fifoCount == 1024) {       
        mpu.resetFIFO();		// reset so we can continue cleanly
//        Serial1.println(F("FIFO overflow!"));
    } 
	else if (mpuIntStatus & 0x02) {
        while (fifoCount < packetSize) 
			fifoCount = mpu.getFIFOCount();
        
        mpu.getFIFOBytes(fifoBuffer, packetSize);	// read a packet from FIFO
        fifoCount -= packetSize;       
        mpu.dmpGetQuaternion(&q, fifoBuffer);	    // display Euler angles in degrees
        mpu.dmpGetGravity(&gravity, &q);
        mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
}

Nun habe ich an anderer Stelle zum Thema “PID” viel gelernt. Vor Allem, dass die Geschwindigkeit des Codes, maßgeblich das PID-Verhalten beeinflusst/kann. Wenn ich den o.g. Code verwende, dauert eine loop ca. 19.000 microsekunden.

Wenn ich diese Zeilen auskommentiere;

	if (!dmpReady) return;		 // if programming failed, don't try to do anything
        while (!mpuInterrupt && fifoCount < packetSize) {
        // other program behavior stuff here
       }

sind es nur noch ca. 60 microsekunden.
Nun die Frage, ist der Interrupt unerläßlich?

Gruß Kucky