Entwickler-Ecke

Sonstiges (Delphi) - LPT Port ansteuern, aber wie?


butterkeks - Fr 09.04.10 11:55
Titel: LPT Port ansteuern, aber wie?
Hallo zusammen,

ich wühle mich jetzt seit Stunden durchs mehrere Foren aber finde nur widersprüchliche angaben.
Wie kann ich von einem Delphi 2007 Programm aus, auf einem Windows XP System, den LPT Port ansteuern und einzelne Pins auf "1" setzen?

Ich habe gelesen das soll über eine IO DLL gehen, aber dann sagt der nächste wieder das geht nicht weil man angeblich ab Win 2000 nen Treiber braucht. Aber sicher sagt da niemand was zu.

Wie mach ich das jetz denn am besten? und wo bekomme ich eine aktuelle, funktionierende DLL oder nen Treiber?

Danke schonmal :)


ALF - Fr 09.04.10 12:11

Hi schau Dir das ZLPORTIO.LIB [http://www.sourcecodeonline.com/details/zlportio_library.html] an.
Vielleicht Hilft es Dir.
Gruss Alf


butterkeks - Fr 09.04.10 12:16

danke :)

werds mir direkt mal angucken.


Reinhard Kern - Fr 09.04.10 16:00

user profile iconbutterkeks hat folgendes geschrieben Zum zitierten Posting springen:
Wie kann ich von einem Delphi 2007 Programm aus, auf einem Windows XP System, den LPT Port ansteuern und einzelne Pins auf "1" setzen?
...


Hallo,

ja geht mit DLL oder Treiber - aber lohnt sich das noch? LPT ist fast ausgestorben, auch wenn du noch einen am PC hast, wird es vermutlich dein letzter sein.

Gruss Reinhard


Xentar - Fr 09.04.10 16:04

Hier der Thread
http://www.delphi-forum.de/viewtopic.php?t=98861
könnte für dich auch interessant sein?
Da ist zwar von Eingängen die Rede, aber die Ideen kann man sicher auch verwenden, um Pins als Ausgang zu schalten.


butterkeks - Fr 09.04.10 16:06

@ Reinhard:
Leider ja, ich wüsste aber auch keine alternative um ein einfaches Signal an ein externes gerät zu senden ohne viel Aufwand.

In diesem Fall will ich einen kleinen Motor einfach an und ausschalten.

Das klappt ja nur über LPT oder vielleicht noch USB. Aber USB is mir zu kompliziert und aufwendig.

@ Xentar: Werd ich mir auch mal angucken.


Xentar - Fr 09.04.10 16:22

Wenn es wirklich nur um eine Leitung geht, könntest du auch eine serielle Schnittstelle (bzw. USB - RS232 Konverter) verwenden, und dort die Handshake Leitungen missbrauchen. Hier musst du wahrscheinlich am Ende einen Transistor anschließen, der wiederum die eigentliche Last schaltet.


Waldheini - Di 13.04.10 22:41

Ist nicht so schwierig, Daten auf dem LPT Port auszugeben.
Die folgende Prozedur schaltet die Bits einzeln durch:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure LPTAusgabe;
var Datei: File;
Daten: Array[0..7]of Byte;
begin
  Daten[0]:= 1;
  Daten[1]:= 2;
  Daten[2]:= 4;
  Daten[3]:= 8;
  Daten[4]:= 10;
  Daten[5]:= 20;
  Daten[6]:= 40;
  Daten[7]:= 80;
  AssignFile(Datei,'LPT1');
  Reset(Datei,1);
  BlockWrite(Datei,Daten,8);
  CloseFile(Datei);
end;