Pulslängen von einem 433 Mhz Modul mit einem Arduino Uno erfassen.

Hallo,
ich bin relative neu, was Arduino angeht. Einige Projekte konnte ich mit Hilfe dieses Forums schon fertigstellen. Dafür ein Dank an alle Helfer hier.

Jetzt zu meinem aktuellen Problem:
Ich habe einen Funk-Temperatursensor. Diesen möchte ich auslesen und die Werte auf einem Raspi weiterverarbeiten.
Ich habe bereits eine Lösung, aber da gehen mir "Aussendungen" des Sensors verloren. Mir ist auch klar warum.
Hier mal der "interessante Teil" des Codes:

timearray[0] = pulseIn(inputPin,LOW);  
if ((timearray[0] > 5950) && (timearray[0] < 6050)) 
	{
		for( byte i=1; i < entries; i++)
			{
				timearray[i] = pulseIn(inputPin,LOW);
			}
		resultstobitarray(); // Zeitwerte in Bits umwandeln
		decodeData(); // Daten extrahieren
		checkPlausibility(); // Daten auf Plausibilität prüfen
		if (looksgood) // Wenn alles gut aussieht Werte ausgeben
			{
				printData();
			}
		}

Durch PulseIn wird der Arduino natürlich immer blockiert und wenn ein falscher Impuls aufgefangen wird hängt das ganze eine Ewigkeit in der Schleife und die echte Sendung wird verpasst.

Also hab ich mir überlegt das ganze per Interrupt zu machen. Aber.... das bekomme ich nicht hin. Könnte mir jemand erklären wie man die Pulslängen mittels Interrupt erfassen und in ein Array schreiben kann.

Liebe Grüße
LS

attachInterrupt im CHANGE Modus jeweils micros() auslesen und abspeichern. Die Differenz zum letzten gespeicherten Wert ist die Puls- bzw. Pausenlänge. Achtung, Variablen, die im Interrupt- und im normalen Kontext verwendet werden, müssen "volatile" deklariert werden. Achte darauf, dass der Interrupt-Handler kurz wird und allfällige Berechnungen/Dekodierungen im normalen loop() getätigt werden.