PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM Signal aus ParallelPort



Mike K
20.03.2005, 19:08
Hallo, ich muss aus dem Parallelport ein PWM Signal rausbekommen. Es ist kein Problem den Port anzusteuern, und ich weis auch wie das Signal auszusehen hat, allerdings möchte ich das ganze mit VB machen, und der normale Microsoft Timer kann das nicht. Bei 50ms ist bei ihm schluss, und ich brauche einen Timer mit einer 0,1 ms Auslösung.

Hat sowas schonmal jemand mit VB gemacht, das er Damit eine Fernsteuerung über den LehrerSchüler Kanal angesteuert hat, oder auf eine andere Art?

Danke

mike

churchi
20.03.2005, 19:27
Das wirst du nicht schaffen - schon gar nicht mit Visual Basic
Für sowas ist der LPT und Windows und Visual Basic einfach viel zu langsam.

Mike K
20.03.2005, 19:39
Was kann ich den noch machen? Gibts da nicht irgend eine andere Möglichkeit? Ich kenn mich mit Microcontroller und Co nicht so aus. Ich will einfach nur 3 RC Funktionen mit dem Pc Steuern können, mehr nicht.

Gibts da nicht irgendeine Karte die man am Pc ansteckt, und Servosignale Ausgibt (die kann ich extern zusammenmischen)
Also eine Servosteuer Karte, die ich mit VB bedienen kann?

mike

BlueNature
21.03.2005, 15:30
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