Ich hab das für eine andere Anwendung mal anders gemacht.
Ich hab dafür einen INTx verwendet und dann während der Interrupt Routine das Interrupt Sensing von steigende auf fallende Flanke umgestellt und umgekehrt.
Dann wird ein Timer ausgelesen der ein Maß für die Impulslänge / Impulspause hergibt ( vorheriger Wert des Timers wird vom aktuellen abgezogen ).
Der Vorteil ist, das man eigentlich immer auf eine bestimmte Aktion wartet ( fallende oder steigende Flanke ) und das es auch mit Controllern funktioniert die kein Pin Change können.
Lesezeichen