Die Lösung mit dem XOR(je 2 Eingänge verbinden und die Ergebnisse nochmal, also 3 Gatter) ist doch ganz gut: Du kriegst jede Änderung mit und kannst dann alle Pins überprüfen(wenn sich zwei gleichzeitig ändern, merkst du das zwar nicht, aber bei der nächsten Änderung sind dann, wenn die Frequenz gleich ist, 3 anders als vorher. Dann müsstest du das Ergebnis verwerfen und auf den nächsten Durchlauf warten (auf den Takt genau gleichzeitige Änderungen sind wahrscheinlich eine krasse Ausnahme.).).
Welche Frequenz haben die Signale denn?
Ein weiteres Problem könnte darin bestehen, dass der Timer, den du verwendest wohl irgendwann überläuft, wenn immer irgendein Signal läuft. Dann kannst du den nicht einfach zurücksetzen und musst den Überlauf irgendwie abfangen.
Wenn die zeitliche Auflösung nicht so wichtig ist, wäre ein Multiplexer die Lösung der Wahl: Du schaltest nur ein Signal durch, wartest, bis eine Periode vorbei ist und machst dann mit dem nächsten weiter(dann könntest du sogar den Capture-Pin nehmen.).
Kommen die PWMs tatsächlich aus unterschiedlichen Quellen?
Wenn sie gleichzeitig starten würden (wie z.B. beim ADXL) oder nacheinander kämen(wie z.B. beim Modellempfänger) wäre die Sache erheblich einfacher.
Geräte gleicher Frequenz lassen sich u.U. auch syncronisieren(auf gleichzeitigen Pulsbeginn).
PS: Verrätst du uns, was du damit vor hast?
Lesezeichen