Nur so ein Gedanke: angenommen man bekommt die Signale auf einem Pin rein (und der Pin bleibt bei stehendem Motor auf low), dann könnte man ja grob so loslegen:
1) warten bis pin auf high geht
2) microsekunden Zähler auf merken (t0)
3) warten bis pin auf low geht
4) Zählerstand merken (t1)
5) warten bis pin auf high geht (oder t1-t0 > 1s)
6) Zählerstand merken t2
7) Verhältnis ausrechnen (t2-t1) zu (t1-t0) (bzw: bei Timeout von 5 Verhältnis auf 100% setzen); aufpassen, daß hier nicht durch 0 dividiert wird.

Bei Bedarf den Ladedruck runternehmen
9) wieder bei 1 weitermachen
Geht bei 200 Hz locker ohne Interrupts
Mikrosekunden liest man mit micros() aus.
Sollte nicht so schwierig sein
