LED's am ser. oder par. Port ansteuern (unter D5)

Hallo Zusammen,

früher, zu C16 / Plus/4 / C64 Zeiten, da war es einfach über ein Poke-Befehl möglich (Stelle nachdem Komma ergab die Datenleitung). Unter Delphi5 scheint mir das ganze nicht mal eben so zu gehen. Gut, hier kurz mein Anliegen.

Ich habe eine Platine mit ingesamt 6 LED’s. Diese LED’s möchte mittels des ser. oder para. Port’s ein- bzw. ausschalten können, mehr ersteinmal nicht.

Kann mir da jemand von Euch auf die Sprünge helfen? Brauche ich irgendeine Freeware-Komponete dafür oder geht es DelphiBordmitteln zu lösen?

Vielen Dank schonmal für Eure Antworten.

Mit freundlichem Gruß
Peter Wolf

Hallo,
da Delphi eine Visual-Sprache ist, die normalerweise
alles unter/über WIN macht, ist es natürlich nicht
ganz einfach über die LPT Bits auszugeben.
Aber nehme doch mal ein LPT-Tool vom Turbo-Pascal,
damit kannst Du normalerweise direkt auf Hardware
zugreifen (zumindest im DOS-Fenster). Das sollte sich
auch für Delphi anpassen lassen.
Falls Du die Ausgabe doch lieber über COM machen willst,
empfehle ich einen Mini-Kontroller (C-Control-Basic).
Da kannst Du die Daten ganz einfach über COM ausgeben
und der Kontroller steuert die LED an (die Treiber reichen
für LED). Da hast Du auch noch viele zusätzliche Mögl.
Für COM kann ich das sehr einfache Delphi-Objekt
„COMPORT“ empfehlen (bei Interesse E-Mail an mich).
Gruß Uwi

Hallo Uwe,

vielen Dank für Deine Antwort. Ja, an dem ComPort-Projekt für Delphi habe ich sogar sehr großes Interesse. Es wäre nett, wenn Du mir da etwas zu mailen könntest. Danke schonmal.

Gruß
Peter Wolf

Hallo!

Ich habe eine Platine mit ingesamt 6 LED’s. Diese LED’s möchte
mittels des ser. oder para. Port’s ein- bzw. ausschalten
können, mehr ersteinmal nicht.

Ueber den seriellen Port duerfte das nicht ganz einfach werden, da es keine 6 Steuerleitungen gibt, die du an- bzw. ausschalten kannst. Wenn ich mich recht erinnere sind es nur 3. Mit einer kleinen externen Logik ginge es dann allerdings schon.
Der Parallelport duerfte aber genuegend Leitungen besitzen.

Kann mir da jemand von Euch auf die Sprünge helfen? Brauche
ich irgendeine Freeware-Komponete dafür oder geht es
DelphiBordmitteln zu lösen?

Der serielle Port laesst sich problemlos mit WinAPI Funktionen benutzen (CreateFile(), SetCommState(), etc.). Fuer den Parallelport bekommst du ebenfalls mit CreateFile() ein Handle. Weitere Funktionen kenne ich leider nicht, da ich bisher nur mit dem ComPort gearbeitet hab.

Als Doku ist das PlatformSDK von Micrsoft nicht schlecht, da sollte es drin stehen.


Thomas

Hallo!
Endlich mal n tolles Thema :smile:

Ueber den seriellen Port duerfte das nicht ganz einfach
werden, da es keine 6 Steuerleitungen gibt, die du an- bzw.
ausschalten kannst. Wenn ich mich recht erinnere sind es nur
3. Mit einer kleinen externen Logik ginge es dann allerdings
schon.
Der Parallelport duerfte aber genuegend Leitungen besitzen.

mit 3Leitungen bekommst Du (digital) 8 Zustände hin mit ein paar einfachen Gattern. Leichter geht es aber mit einem Schieberegister, in das Du die Daten dann „reinschiebst“.
Aber für „nur“ 6 Led’s ist der Parallelport wohl die bessere Wahl.

Der serielle Port laesst sich problemlos mit WinAPI Funktionen
benutzen (CreateFile(), SetCommState(), etc.). Fuer den
Parallelport bekommst du ebenfalls mit CreateFile() ein
Handle. Weitere Funktionen kenne ich leider nicht, da ich
bisher nur mit dem ComPort gearbeitet hab.

Da könntest Du mir evtl ein wenig helfen (bin noch nicht so lange dabei!).
Habe eine Software in VB und hätte sie gerne etwas anders unter Delphi neu aufgebaut(am besten unter NT/2000 muss aber nicht).
Ist für eine 64Kanal Lichtorgel(8x8Kanäle).
Ist nicht schlecht, läuft nur unter 2000 nicht und ich möchte zur Soft noch eine Hardwareansteuerung einbinden können, damit ich nicht immer mit Tasten/Maus die 64 Schieberegler bewegen muss… dauert etwas, bis man 10Stck geändert hat.

Als Doku ist das PlatformSDK von Micrsoft nicht schlecht, da
sollte es drin stehen.

muss ich wohl noch mal suchen…

mfG
André

Machts euch nicht so schwer, ein wenig assembler macht es sehr viel einfacher. Erinnert zumindest sehr viel an den Poke-Befehl. Siehe weiter oben, ansteuerung von Schrittmotoren. Einfach LEDS an Pin 2-9 des LPT1 und mit Assembler den Wert an Port 378h ausgeben.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo!

Erstmal sorry, dass die Antwort so lange gedauert hat.

mit 3Leitungen bekommst Du (digital) 8 Zustände hin mit ein
paar einfachen Gattern. Leichter geht es aber mit einem
Schieberegister, in das Du die Daten dann „reinschiebst“.
Aber für „nur“ 6 Led’s ist der Parallelport wohl die bessere
Wahl.

Jup, sehe ich auch so. Man muss sich ja nicht unnoetig Arbeit machen.

Da könntest Du mir evtl ein wenig helfen (bin noch nicht so
lange dabei!).

Klaro.
Ich kann ja mal kurz erklaeren was ich bisher gemacht hab. Vielleicht kennst du den selbstgebauten IR-Empfaenger aus der c’t? Damit habe ich ein wenig gespielt und sozusagen die Grundsteine fuer einen eigenen Treiber geschrieben, sprich ich kann die empfangenen Daten auslesen. Wenn dir das weiterhilft maile ich dir gerne den Source.

Falls du das PlatformSDK suchst: ftp://ftp.microsoft.com/developr/platformsdk/oct2000/

Cu,
Thomas