AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Auslesen des Parallel Ports

Ein Thema von hibbert · begonnen am 23. Aug 2005 · letzter Beitrag vom 14. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#1

Auslesen des Parallel Ports

  Alt 23. Aug 2005, 16:18
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:
portout(888,16) Doch wie lese bzw merke ich jetzt das was in den Port "gesendet" wird ??

Danke
Hibbert
  Mit Zitat antworten Zitat
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
Benutzerbild von christian.noeding
christian.noeding

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

Re: Auslesen des Parallel Ports

  Alt 23. Aug 2005, 20:42
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: PC_DIMMER


Die Belegung des LPT-Ports findet man ganz einfach HIER! *g* du brauchst theoretisch nur nen Data-Port mit nem Schalter auf einen der Status-Registerports legen und dann per inp32(889) oder inp32(890) abfragen - mehr nicht. Auf diese Weise habe ich mir einen Signalgeber zusammengebastelt, der mich per ISDN auf dem Handy alarmiert, falls bestimmte Kontakte geschlossen, oder geöffnet werden


viel Glück,
Christian
Angehängte Dateien
Dateityp: doc schnittstellenprogrammierung_922.doc (45,0 KB, 73x aufgerufen)
Christian Nöding
  Mit Zitat antworten Zitat
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Auslesen des Parallel Ports

  Alt 23. Aug 2005, 21:47
cool danke, ich werde mir das morgen mal nach der schule angucken.

ich werde mich auf jedenfall nochmal melden
  Mit Zitat antworten Zitat
Benutzerbild von zebrafalke
zebrafalke

Registriert seit: 25. Feb 2006
155 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Auslesen des Parallel Ports

  Alt 3. Sep 2006, 21:10
Hallo,

Zitat von christian.noeding:
if not inp32(888)=0 then ShowMessage('Da ist einer auf meine Schnur getreten!');
Damit hab ich ein paar Probleme.

An welche Pins könnte ich zum Beispiel einen Taster anschließen, dessen drücken dann registriert wird?

Code:
   ----------------------
  |                  |
  |                  |
LPT-Port          Taster
  |                  |
  |                  |
   -------------------
Zitat von christian.noeding:
du brauchst theoretisch nur nen Data-Port mit nem Schalter auf einen der Status-Registerports legen und dann per inp32(889) oder inp32(890) abfragen - mehr nicht.
geht bei mir nicht, da wird der Taster immer als aus erkannt, auch wenn ich ihn drücke...

Gruß
zebrafalke
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#6

Re: Auslesen des Parallel Ports

  Alt 10. Sep 2006, 11:34
Usermode böse - Kernelmode lieb! Treiber sinnvoll einsetzen.
  Mit Zitat antworten Zitat
Benutzerbild von zebrafalke
zebrafalke

Registriert seit: 25. Feb 2006
155 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Auslesen des Parallel Ports

  Alt 10. Sep 2006, 13:28
Thx, hatte es schon anders hingekriegt

Gruß
zebrafalke
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Auslesen des Parallel Ports

  Alt 10. Mai 2007, 18:29
Zitat:
Thx, hatte es schon anders hingekriegt
Sorry, dass ich das alte Thema neu anschneide...aber weiß jemand wie man das jetzt letztendlich löst? Wie kann ich herausfinden, ob ich eine Datenleitung z.B. D0 kurzgeschlossen habe? Ich benutzte ja schon die inpout32.dll, das Out32 funktioniert erstklassig. Ich setzte erst per Out32(888,1) das D0 auf High, die Led zwiscehn D0 und Ground leuchtet. Schließe ich d0 kurz, und lese per Inp32(888) den zustand ein, so bleibt dieser unverändert bei "1"

Hab schon im Bios auf EPP1.7 umgestellt, hat nichts genützt.


Grüße,

Alleinherrscher
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Auslesen des Parallel Ports

  Alt 10. Mai 2007, 22:48
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.
  Mit Zitat antworten Zitat
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Auslesen des Parallel Ports

  Alt 10. Mai 2007, 22:51
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
Angehängte Dateien
Dateityp: rar testprog_143.rar (49,0 KB, 33x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 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