Herzlich willkommen in der Delphi-PRAXiS, unk.
Um dich an die Lösung heranzutasten kannst du dich erstmal mit der TTimer-Komponente von Delphi (Palettenseite Sytem) beschäftigen. Damit solltest du unter gewissen Bedingungen einen Takt bis zu 100 kHz realisieren können. Sobald du diese Technik ausgereizt hast kannst du im Microsoft Platform
SDK das Kapitel Timers durcharbeiten. TTimer kapselt SetTimer (WM_TIMER). Mit passender Interrupt-Technik und den high performace counters lässt sich eventuell mehr machen, aber das ist nicht direkt mein Thema. Vermutlich ist eine spezielle PWM-Logik auf einem Adapter die eleganteste und zuverlässigste Lösung, aber vielleicht geht es dir ja nur ums Prinzip.
Freundliche Grüße vom marabu