Due Interrupt Unstable

Hello Everyone!

I’ve a Problem with the Interrupts of the Arduino Due. I try to establish a EFI for my old Motorcycle.

but the Interrupts act a bit weak and i don’t know why.

At the Intterupt functions i write a digitalpin to High, after a few Microseconds i want to write it LOW. but it seems the Due sometimes Forgot to Write the Pins. The Interrupt occurs on the falling edge.

Here is the Important part of my Code:

attachInterrupt(digitalPinToInterrupt(Pin_KW_Sensor), Kurbeltrieb_Ign, RISING); //occurs when engine is at Max spark advance Point
attachInterrupt(digitalPinToInterrupt(Pin_KW2_Sensor), Kurbeltrieb_OT, FALLING); //occurs when engine is at dead top center

void loop() {	
	currentLoopTime = micros(); // Write the Time : unsigned Int
	if (currentLoopTime >= Injectiontime && Injector_Status == 1) { //Injection Finished
		digitalWrite(Pin_Injector, LOW);
		Injector_Status = 0;

	if (currentLoopTime >= Ignitiontime && Ignition_Status == 1) { //Ignition Finished
		digitalWrite(Pin_Ignition, LOW); 
		Ignition_Status = 0;

	Compute_Betriebspunkt(); //do some Bilinear Interpolation of VE and AFR


void Kurbeltrieb_Ign() { //Interrupt 1 Engine is at maximum spark advantage Point
	Ignition_Status = 1;
	digitalWrite(Pin_Ignition, HIGH);

	Timestamp_Ign = micros();
	Ignitiontime = Timestamp_Ign + t_ignition(Alpha_Ign, Drehzahl); // Calc Time to Ign.

	if (Benzinpumpe_Status == 0) { //Benzinpumpe einschalten
		digitalWrite(Pin_Benzinpumpe, HIGH); 
		Benzinpumpe_Status = 1;
	Setback = 0; // for further calc

void Kurbeltrieb_OT() { //Interrupt 2 Engine is at Dead Top Center
	Injector_Status = 1;
	digitalWrite(Pin_Injector, HIGH);
	Last_Timestamp_Inj = Timestamp_Inj;
	Timestamp_Inj = micros();
	Delta_Timestamp_Inj = Timestamp_Inj - Last_Timestamp_Inj;
	Injectiontime = Timestamp_Inj + t_inject(Drossel_Klappe, Drehzahl); // Calc Injector Open time

	Drehzahl = 60000000.0000 / Delta_Timestamp_Inj; // calc Engine Speed


I tryed to figure the problem with my Oscilloscope. The Bottom, blue Line is the Interrupt Input signal and act stable.

the Upper Yellow line is “Pin_Injector” , it twiches around roughly more or less 2 seconds… once the Due forgot to turn the Pin on, another time it forgot to turn it Off…

greetings from Germany
and thank you in advance!



Do you have pull down résistors on each interrupt pin ?

what is the frequency interrupt functions should be called ?

BTW, post all your code, very often the issue is somewhere inside the non posted part of code...