Einzelnen Beitrag anzeigen

Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Auslesen des Parallel Ports

  Alt 23. Aug 2005, 16:39
Hi!

Ich nutze für so etwas immer die inpout32.dll von www.logix4u.com. Die Library ist klein, schnell, und hat nur das, was man braucht.

Lade sie in dein Programm wie folgt:

Delphi-Quellcode:
// inpout32.dll für LPT-Ausgang unter WinNT, Win2000 und WinXP laden
procedure Out32(PortAddress:word;Value:byte);stdcall;export;
external 'inpout32.DLL';
function Inp32(PortAddress:word):byte;stdcall;export;
external 'inpout32.DLL';
Mit
out32(888,1); kannst du z.B. D0 des LPT1-Portes auf High setzen. Mit Inp32(888); liest du den aktuellen Status des LPT1-Portes aus. Das klappt prima. Zudem kann man jede Byteoperation anwenden, die man kennt.

Wenn du Out(888,255); setzt, dann schaltest du alle Register auf high, bei 127 nur das letzte, bei 64 das vorletzte, etc.

Der LPT1-Port geht dann auch noch von 888 auf 889 und 890, wo man dann jeweils neben den Data-Registern auch die Status- und Strobe-/Line-/Feed- etc. Register lesen / setzen kann.


Du musst jetzt nur noch einen Timer setzen, der in bestimmten Zeitabständen den Port mit if not inp32(888)=0 then ShowMessage('Da ist einer auf meine Schnur getreten!'); etc. abfragt. Pass aber auf: manche Register sind negiert und müssen gesondert behandelt werden.

Schöne grüße,
Christian
Christian Nöding
  Mit Zitat antworten Zitat