Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Druckerport benutzen (https://www.delphipraxis.net/84357-druckerport-benutzen.html)

Delphi Star 15. Jan 2007 23:04


Druckerport benutzen
 
Ich benutze die inpout32.dll.
Delphi-Quellcode:
procedure Out32(PortAddress:word;Value:byte);stdcall;export;
external 'inpout32.DLL';
function Inp32(PortAddress:word):byte;stdcall;export;
external 'inpout32.DLL';
Zuerst wollte ich es mit etwas einfachem probieren. Also habe ich die Pins 10 und 2 (hoffe mal das ist richtig) verbunden. Danach habe ich versucht abzufragen, ob eine Verbindung besteht. Allerdings will es nicht gelingen.
Delphi-Quellcode:
out32(888, 255); //Ausgänge auf High setzen

if inp32(888)<>0 then
Showmessage('Keine Verbindung :(');
Was mache ich falsch :?:

Muetze1 16. Jan 2007 00:07

Re: Druckerport benutzen
 
1. 378 wäre die hexadezimal Portangabe, also bitte auch als Hexadezimalzahl schreiben, also $378, oder was willst du im Register des 3. IDE Controllers rumpfuschen? Deine Daten kannst du auch einfacher auf der Festplatte zerschiessen.
2. 888 ist nicht falsch, sondern einfach nur die dezimale Schreibweise für die selbe Zahl in der hexadezimalen Schreibweise $378.
3. Der Parallelport war eigentlich nur zur Ausgabe gedacht. Wenn du auch Pins einlesen willst, dann musst du ihn in den bidirektionalen Modus schalten. Dazu ist das entsprechende Bit (5) im Parallel Port Control Register zu setzen bzw. zu löschen.
4. Der Port muss dazu überhaupt bidirektionalfähig sein, was wiederrum den EPP bzw. ECP Modus voraussetzt. Im SPP Modus ist er entsprechenden Spezifikation nicht bidirektional.
5. Wenn du Pin 1 und Pin 2 verbindest, dann musst du dabei beachten, dass Pin 1 das /STROBE Signal ist. Dieses ist (Wie am Signalnamen zu erkennen) Low-Aktiv, also wird mit dem setzen des STROBE Bits (0) im Parallel Port Control Register das Signal auf Low gesetzt. Daher würde das Bit 0 (Pin 2) des Datenlatches auf 0 gehen. Wenn du das STROBE Bit (0) löschen würdest, dann auf 1.

Grundsätzlich kann ich nur eindringlich dazu raten, dich vorher gründlich zu informieren. Der direkte Hardwarezugriff wurde nicht umsonst verboten. Du greifst damit direkt in die Steuerung von Windows und der Gerätschaften ein. So lange man sich nicht sicher ist was man warum und wie macht, kann das deftig in die Hose gehen. Schon allein die Unkenntnis bezüglich der Portadressen und der Schreibweise/Zahlenformate kann ich deinem Rechner nur die Daumen drücken...

Es ist nicht böse gemeint, aber ich versuche mich auch nicht einfach in eine Lok der Deutschen Bahn zu setzen und mal so schnell einen Zug von A nach B zu fahren. Selbst wenn, würde ich mich vorher entsprechend vorbereiten und informieren.

/EDIT: Einfach den Beitrag editieren und fast komplett umzustellen ist nicht schön und mir auch egal. Ich schreibe nicht nochmal einen neuen Beitrag zu den komplett neuen Fakten....
Grundlegendes ist geschrieben und gilt auch weiterhin...

Delphi Star 16. Jan 2007 02:37

Re: Druckerport benutzen
 
Eigentlich hast du ja recht. Daran hatte ich gar nicht so sehr gedacht. :pale:
Also werde ich mich lieber erst einmal gründlich darüber informieren.

oldmax 16. Jan 2007 08:26

Re: Druckerport benutzen
 
Hi
Auch wenn der Druckerport schon für tot erklärt ist, so macht es doch Spaß, alte Rechner mit ein wenig Elektronikbastelei zu erkunden und dazu gehören auch Experimente mit dem Druckerport. Wer sich so ein altes Schätzchen vielleicht für 'n Hunni mit Win 95 oder 98 erstöbern kann, darf auch damit rumbasteln. Doch bevor ihr gleich die Kiste verbratet, macht mal einen kleinen Exkurs durch einschlägige Fachlektüre der kleinen Elektrik. Früher gab's mal Elektor mit gut erklärten Bauanleitungen. Elektor gibt's noch, aber die Bauanleitungen sind schon über den Punkt für Anfänger hinaus. Leider kann ich auch kein Ersatz anbieten und so bleibt mir nur auf mein Tutorial zu verweisen. Experimente mit dem Druckerport, findest du unter Tutorials. Matze hat es mal für mich in dieses Forum gestellt. Geh einfach über die Suche, dann findest du schon....
Gruß oldmax

Delphi Star 18. Jan 2007 09:26

Re: Druckerport benutzen
 
Ich habe mich jetzt noch einmal genauere informiert und folgendes herausgefunden:
Ich brauche Pin 10 und Pin 25. In Delphi sollte ich die Verbindung dann folgendermaßen abfragen können:
Delphi-Quellcode:
if inp32($378)<>0 then
Showmessage('Keine Verbindung :(');
Die Informationen habe ich aus einer Anleitung für DOS und habe es auch noch nicht ausprobiert. Ich wollte nur einmal fragen, ob das vollkommener Unsinn ist, bevor ich mir noch meinen PC kaputt mache.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz