Da gibt es einige Möglichkeiten wie man so etwas realisieren kann.

Ich würd erstmal ein Register oder einen RAM Speicherplatz bei einem Tastendruck mit dem Wert 100 laden.

Nach der Ausgabe eines kompletten impulses wird dieser Zähler um 1 zurückgezählt.

Nun musst du für einen Motor die Ausgabefrequenz heruntersetzen.
Das kannst Du über eine Zeitschleife machen - was aber den Nachteil hat, das der Controller während dieser Zeit nichts anderes machen kann.

Oder Du lässt einen Timer laufen in dessen Comparematch oder Overflow Interrupt der Impuls erzeugt und der Zähler heruntergezählt wird.

Wenn du ein symetrisches Signal brauchst (puls/pause = 50/50) könntest Du auch den Zähler mit 200 füttern und bei geraden Zahlen ein H ausgeben und bei ungeraden Zahlen ein L.
Das geht in Assembler mit 4 Befehlen

ROR r16
BRCS ungerade ;Wenn das niederwertigste Bit eine 1 ist (=Zahl ungerade) wird verzweigt.
ROL r16
...


DEC r16
BRNE nochpulse ; Es müssen noch Impulse ausgegeben werden.



Das sind nur 2 Möglichkeiten, es gibt sicher noch einige mehr.