Du kanst nicht direkt ein PWM-Signal mit dem LPT-Port erzeugen. Der Grund ist die nötige Frequenz:

f = PWMFrequenz * Auflösung * 2

also bei 2kHz PWM und einer Auflösung von 8-Bit wären dies:

f = 2000Hz * 256 * 2 = 1024000Hz = 1,024MHz!!!

Die 2 kommt davon weil man ja auch noch die positive und negative Flanke ausgeben muß. Also müßte dein Rechner in de rLage sein sehr genau mit dieser hohen Frequenz das zu erzeugen. Ist 100% nie möglich.

Andere Lösung wäre beispielsweise ein externer Counter und ein Vergleicher. Ist bisschen aufwendig zu bauen. Damit kann man durch anlegen eines Vergleichswerts an den Vergleicher mit dem sehr schnell getakteten Counter ein PWM erzeugen. Uneffektiv!

Dritte Lösung die ich dir raten würde, nimm dir einen Comtroller wie z.B. einen AVR oder eine C-Control für den Job. Nimm eben die COM-Schnittstelle und geh mit RS232 auf den Controller. Der Controller empfängt den neuen Sollwert seriell und gibt es an seinen Harware-PWM-Ausgängen heraus. Das kannst du programmieren. Normal hat er immer zwei PWM-Ausgänge manchmal auch mehr. Wenn du gar keine Ahnung hast ist wohl eine C-Control die einfachste Lösung weil es am schnellsten geht.

Zu einer C-Control kann ich dir auch ein Beispiel sagen. Mußt es dir nur ausbauen wie du es brauchst.

Define Ausgang1 As DA1
Define Ausgang2 As DA2
Define Wert As Byte

Init:
Ausgang1 = 0
Ausgang2 = 0

Schleife:
Input Wert
Ausgang1 = Wert
Input Wert
Ausgang2 = Wert
GoTo Schleife

Nun kann deine C-Control das PWM und du mußt nur noch per COM-Schnittstelle am PC einen binärwert frü PWM1 senden udn danach PWM2 und immer so weiter. Einfacher fallt mir ehrlich nichts ein.

Grüße Wolfgang