@oberallgeier
Ich führe mir das nach dem Abendessen nochmal genauer zu gemüte und denk drüber nach, klingt aber nach einen Sinnvollen Ansatz
@Peter
Ich vermute wirklich gleichzeitig, das Analog Oszi sieht nicht das kleinste Zucken.
Aber - Man ohhh Man, wieso bin ich da nicht selber drauf gekommen - 2 Matrixen...
dann wären es wirklich erst mal nur 2 Kanäle zum auswerten, deren Signale sich ja auch NIE "über"schneiden sondern nur aneinander anschließen.
Gruß Basti
EDIT:
@Oberallgeier
Die Idee an sich ist nicht schlecht - Bauchschmerzen macht mir die Tatsache, das mir dann alle 10uS ein Interrupt geworfen wird, wovon so ca 99,9% sinnlos passieren, da sich die Zustände in einem Zyklus ja nur 12 mal ändern.
@Peter
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
Ping Pong Prinzip Quasi...
müsste doch klappen oder nicht?
Vorteil:
Es wird wirklich nur ein Interrupt geschmissen wenn auch wirklich was passiert.
Gruß Basti
Lesezeichen