Du musst es mit Timer und Interrupt Routine machen.
Du kannst zum Beispiel folgendes PC-Programm nutzen
https://www.roboternetz.de/phpBB2/dl...le&file_id=169

um dir ein Grundprogramm mit blinkender LED zu generieren. Statt dem umschalten der LED gibst du einfach ein Puls auf die Motoren.
Mit sogenannten Flags (globale Variablen) kannst du auch Zähler in die IRQ Routine einbauen, so das die Gewschwindigkeit fuer jeden Motor geregelt wird.
Wenn du es richtig machst, kostet das am Ende kaum Performance, das läuft einfach im Hintergrund nebenher.