Impulsdauer / Impulszähler / Frequenzanzeige - Umsetzungsmöglichkeit fehlt.

ist ein möglich in einem Interrupt mit millis() zu arbeiten? Meinte irgendwo zu lesen dass man es nicht machen sollte.

Wie könnte ich die Zeit eines Interrupts sonst "stoppen"?

nehmen wir an ich belege 2 Interrupt Pins mit dem selben signal (hab eh ein Mega) und mach folgendes:

void setup() {
volantine unsigned long startP=0;
volantine unsigned long endP=0;
volantine unsigned long lasttime=0;
volantine unsigned long time=0;

double liter;

attachInterrupt(0, startPulse, RISING);
attachInterrupt(1, endPulse, FALLING);
}

void loop () {

liter=time/1000/60*.44; //millis -> min * 0.44 da die Einspritzdüsen 440cc/min liefern.

}

void startPulse () {

startP = millis();

}

void endPulse (){

endP = millis();
lasttime = endP - startP;
time= time + lasttime;
}

würde es funktionieren?

für Geschwindigkeit/Entfernung das selbe Prinzip? Wobei da 1 interrupt Pin reichen würde. Muss nur die Zeit von Flanke bis Flanke wissen.