So einfach ist die Sache nicht.
Dein Problem ist eigentlich nicht die Auswertung sondern die Erfassung
der Werte. Die Abzählung hinten nach ist das geringste Problem.
Du überwachst den einen Eingang und zählst Pulse. Du überwachst den
anderen Eingang und zählst ebenfalls Pulse. Sobald auf einem Kanal 400
Pulse beisammen sind, siehst du nach wie der Zählerstand am anderen
Kanal ist. Sind das weniger als 397 schlägst du Alarm.
So weit, so naiv angegangen.
Denn: Wie gehts weiter?
Beginnst du dann die Zählung wieder bei 0?
Dann kannst du dich in folgende Situation manövrieren
A |-------------------------|
B |----------------*--*--*--|
Auf beiden Kanälen laufen die Pulse ein. Am B Kanal gibt es 3 Fehler,
die du auch korrekt feststellst. Nach 400 Pulsen hast du also 3 Fehler -
kein Grund Alarm zu schlagen.
Jetzt beginnt deine Zählung erneut
A |-------------------------| |------------------------|
B |----------------*--*--*--| |-*--*-------------------|
und wieder laufen in besagtem Intervall 2 Fehler auf. 2 Fehler sind kein
Grund Alarm zu schlagen.
Nur: Das ist Zufall, dass du nicht Alarm geschlagen hast! Zufall, da es
nur davon abhing, wann genau du mit der Messung begonnen hast. Wäre dein
µC zu einem anderen Zeitpunkt eingeschaltet worden, dann hättest du
gemessen
A |------------------------------|
B |---*--*--*------*--*----------|
5 Fehler im Intervall und damit eine Alarmsituation.
Und das ist unbefriedigend, wenn es von den Rahmenbedingungen abhängt,
ob du Alarm schlägst oder nicht.
So gehts also nicht.
Was du brauchst ist ein "gleitendes Fenster". In diesem Fenster sind die
Daten der letzten 400 Pulse enthalten. Und wenn sich aus diesen Daten
ergibt, dass du mehr als 4 Fehler hast, dann wird Alarm geschlagen.
Kommt eine neue Pulsmessung dazu, dann wird die an einem Ende der Daten
angehängt, während am anderen Ende die Daten eines Pulses raufallen.
Sieht man sich das ganze grafisch in so einem Schema an, dann sieht es
so aus, als ob die Daten unter einem Sichtfenster durchziehen, daher der
Name. So wie ein Papierstreifen, den man unter einer Öffnung durchzieht.
Und wann immer innerhalb der Öffnung 4 Fehler erkennbar sind, schlägst
du Alarm.
Blöd ist jetzt nur, dass sich dein Fenster durch die Anzahl der Impulse
definiert. Da aber nicht bekannt ist, wie breit so ein Puls ist, hat das
Fenster daher keine fixe zeitliche Breite sondern muss sich an die Pulse
anpassen. Und da hast du jetzt wieder das Problem, dass sich diese
Pulsbreite bzw. Pulszahl aus 2 Eingangskanälen ergibt. Das Problem ist
nicht das Hinzufügen des neuen Pulses sondern das bereigigen am anderen
Ende des Fensters. Das Problem wäre einfacher, wenn dein Fenster sich
nicht durch Pulszahln definieren würde sondern durch Zeiten. Dann kriegt
jeder Puls einen Zeitstempel und zu alte Pulse fallen dann einfach raus.
Aber so ist das Problem knifflig.
Da hast du noch einiges vor dir. Die Sache ist nicht so einfach, wie sie
auf den ersten Blick aussieht.
Alles steht und fällt mit deiner Datenaufnahme. Wenn du gut ist, dann
ist die Auswertung ein Kinderspiel.