![]() |
Auslesen des Parallel Ports
Hi,
ich habe folgendes vor: Ich möchte gerne einen Draht, der aus dem Parralelport kommt wieder in den Parralel Port leiten. Nun möchte ich gerne gerne mit meinem Delphi Programm ermitteln, wann nun der Stromimpuls wieder in den Port reingeht. Mein Problem ist, an welche Pins muss ich die Drähte löten ? Und wie bemerke ich mit meinem Programm, dass die "Verbindung" hergestellt ist ? Mit der io.dll sende ich ja folgendermaßen:
Delphi-Quellcode:
Doch wie lese bzw merke ich jetzt das was in den Port "gesendet" wird ??
portout(888,16)
Danke Hibbert |
Re: Auslesen des Parallel Ports
Hi!
Ich nutze für so etwas immer die inpout32.dll von ![]() Lade sie in dein Programm wie folgt:
Delphi-Quellcode:
Mit
// 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';
Delphi-Quellcode:
kannst du z.B. D0 des LPT1-Portes auf High setzen. Mit
out32(888,1);
Delphi-Quellcode:
liest du den aktuellen Status des LPT1-Portes aus. Das klappt prima. Zudem kann man jede Byteoperation anwenden, die man kennt.
Inp32(888);
Wenn du
Delphi-Quellcode:
setzt, dann schaltest du alle Register auf high, bei 127 nur das letzte, bei 64 das vorletzte, etc.
Out(888,255);
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
Delphi-Quellcode:
etc. abfragt. Pass aber auf: manche Register sind negiert und müssen gesondert behandelt werden.
if not inp32(888)=0 then ShowMessage('Da ist einer auf meine Schnur getreten!');
Schöne grüße, Christian :D |
Re: Auslesen des Parallel Ports
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab hier noch ne kleine *.doc-File für dich... die habe ich genutzt, um mir das Schnittstellensystem näher zu bringen. Wenn du Sourcecode brauchst, dann kannst du z.B. in die Sources meines PC_DIMMERs schauen, da ich dort ebenfalls den Parallelport ansteuere:
![]() Die Belegung des LPT-Ports findet man ganz einfach ![]() viel Glück, Christian :) |
Re: Auslesen des Parallel Ports
cool danke, ich werde mir das morgen mal nach der schule angucken.
ich werde mich auf jedenfall nochmal melden :wink: |
Re: Auslesen des Parallel Ports
Hallo,
Zitat:
An welche Pins könnte ich zum Beispiel einen Taster anschließen, dessen drücken dann registriert wird?
Code:
----------------------
| | | | LPT-Port Taster | | | | ------------------- Zitat:
Gruß zebrafalke |
Re: Auslesen des Parallel Ports
|
Re: Auslesen des Parallel Ports
Thx, hatte es schon anders hingekriegt :wink:
Gruß zebrafalke |
Re: Auslesen des Parallel Ports
Zitat:
Hab schon im Bios auf EPP1.7 umgestellt, hat nichts genützt. Grüße, Alleinherrscher |
Re: Auslesen des Parallel Ports
Auch das Output Latch im Data Control Register konfiguriert? Im Normalfall ist der LPT nur zur Ausgabe da. Von daher hatte man früher immer den zuletzt ausgegebenen Wert beim einlesen zurück bekommen. Von daher muss man nun erstmal dieses Latch Umschalten um das Signal der Datenleitungen zu bekommen.
Aber noch was grundlegendes: Offene Datenpins sowie zu Ground geschlossene liefern immer das gleiche Signal: LOW. |
Re: Auslesen des Parallel Ports
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich habe am Anfang des Jahres ein altes Ketcar mit nem Laptop und ner Autobatterie zum Fahren gebracht. Dabei musste man natürlich auch die Radstellung überprüfen, also etwas über den LPT einlesen. dazu habe ich mir damals n kleines Testprogramm geschrieben. Es gibt Signale ab, kann aber auch welche einlesen. Ich habe das Prog mal angehangen. Kurz zum Programm: V, L, R, Z würden das Teil zum Fahren bringen. Bumber, Mittelstellung und Links/rechts sind rot oder grün bei entsprechender belegung, ist aber auch egal, war nur was für mich zum überprüfen. Wichtig dürften hier die Checkboxen an der rechten Seite sein. Ist ein Haken gesetzt, so ist die Leitung geschlossen. (Pin 10 - 13 und Pin 15) Mit dieser Methode konnte ich später im Hauptsteuerungsprogramm alle wichtigen Informationen "einlesen". Ich hoffe es hilft... (Bitte nicht über den schlechten Programmirstiel/rechtschreibfehler oder sonstiges herziehen, es war nur ein kleines Testprogramm für mich. Habe auch ein wenig in der Das005.pas rumgefummelt... also mal gucken. hibbert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz