![]() |
Druckerport benutzen
Ich benutze die
![]()
Delphi-Quellcode:
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.
procedure Out32(PortAddress:word;Value:byte);stdcall;export;
external 'inpout32.DLL'; function Inp32(PortAddress:word):byte;stdcall;export; external 'inpout32.DLL';
Delphi-Quellcode:
Was mache ich falsch :?:
out32(888, 255); //Ausgänge auf High setzen
if inp32(888)<>0 then Showmessage('Keine Verbindung :('); |
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... |
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. |
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 |
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:
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.
if inp32($378)<>0 then
Showmessage('Keine Verbindung :('); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 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