Beim Code oben fehlt noch etwas. Bis jetzt wird nur die Fallende Flanke ausgewertet. Es müßte da auch noch was bei der Steigenden Flanke passieren:

Bei der Steigenden Flanke müßte der Timer auf einen Startwert (z.B. 0 ) gesetzt werden, und dann auf die fallende Flanke umgeschatet werden.
Bei der Fallenden Flanke = Ende des Pulses, kann man dann die Zeit auslesen und müßte dann auch wieder die steigende Flanke umschalten.

Im Zweifelsfall sollte man erstman dem Compiler das retten der Register überlassen, auch wenn es langsamer wird. Da ist man dann sicher nicht noch da einen Fehler drin zu haben.

Wenn man schon den ICP Eingang nutzt, könnte man die Zeit auch gleich aus dem ICP Registern auslesen. Das wird etwas genauer, auch wenn das auslesen aus dem Timer auch ausrechend genau ist.


Das externe zusammenführen der Signal zu einem Summensignal ist zwar ein Umweg, aber auch nicht so kompliziert. Das könnte man realtiv leicht selber aufbauen mit einer Diode je Kanal und einem Pulldown Widerstand - da ist ja nur eine Oder Verknüpfung.