Zitat von
Bomberpilot
Aber da kommt mir mit der 2 Matrix Methode eine geniale und einfache Idee.
Beide Signale kommen an Interrupt Eingänge.
Ein Timer läuft einfach vor sich hin. Bei Überlauf wird KEIN Interrupt geworfen. Bzw ein Überlauf könnte auf Signalverlust hinweisen (Fail-Safe Funktion)
-INT0 is aktiv und wartet auf High Flanke
-INT1 is deaktiviert
-Kommt nun ein Signal an INT0 wird der Timer auf 0 gesetzt INT0 deaktiviert und INT1 aktiviert
-Bekommt dann INT1 sein Signal wird der Timerwert gespeichert (=Länge Kanal 1), der Timer auf 0 gesetzt, ein Kanal Zähler erhöht und INT1 deaktiviert + INT0 wieder aktiviert.
-Kommt nun wieder auf INT0 ein Signal wieder Wert speichern, Timer Reset, Kanal Zähler erhöhen, INTs tauschen usw...
-Wenn dann der Kanalzähler auf 6 steht, wird der Interrupt nicht getauscht sondern der aktuelle auf Fallende Flanke umkonfiguriert, gibt ja keine weitere High Flanke mehr in diesem Zyklus.
-Wenn diese LOW Flanke dann kommt, wieder Wert speichern, und alles auf Anfang:
INT0 aktiv
INT1 deaktiv
Kanal Zähler 1