-Du initialisierst einen Timer mit 20ms
-Dann einen mit dem Pulswert.
-Der Erste stösst den Zweiten immer an, der Zweite läuft seine Dauer ab und zieht dann das Signal wieder auf low..
-wenn der Zweite eingeschaltet wird, wird das Signal gesetzt..

Oder mit einem Timer:
-Setze Pulsweite (timeroverflow)
-Beim Erreichen berechnest du die Differenz auf 20ms und initialisierst damit den Timer neu
-beim zweiten Overflow wieder Pulsweite setzen
usw.

Aufpassen musst du bei beiden Möglichkeiten beim Ändern der Pulsdauer...
Deshalb:
Vorher Timer anhalten (!!!) und danach nicht einfach wieder loslaufen lassen sondern ZURÜCKSETZEN!!!Sonst enstehen Störsignale die ab und zu sehr blöde Folgen haben

Oder:
Kauf dir einen sd20 (Servocontroller)

Gruss
Michael