Tech-Ecke / Delphi Inhalt / INPOUT32.DLL |
|
![]() Mit Hilfe dieser Library ist es möglich den LPT-Port aus eigenen Windowsanwendungen heraus anzusteuern. Da diese Bibliothek nur zwei Funktionen hat, ist sie sehr einfach zu handhaben. Es werden alle 32Bit-Windowsversionen ab Win95 unterstützt. Hinweis!:
Die Programmierbeispiele weiter unten beziehen sich auf den LPT1
und LPT2 mit der Adresse $378h bzw. $278h. Die Adresse muss
jedoch in dezimaler Schreibweise angegeben werden, also 888 beim
LPT1 und 632 beim LPT2. Das ganze trifft allerdings nur auf
OnBoard-LPT-Ports zu.
Die im Beispiel-Bild
eingekringelte Adresse ist die Hex-Adresse des LPT1. Für die
Programmierung benötigt man jedoch die
Dezimaladresse, welche man sich
hier
Alternativ zu INPOUT32.DLL gibt es noch die HWInterface32.dll und die IO.dll welche einen identischen Syntax haben.
Der LPT-Port ist in drei Register unterteilt, das Datenregister
(8Bit), das Steuerregister(4Bit) und das Statusregister (5Bit).
Für den Bastler ist eigentlich nur das Datenregister, welches 8
Ausgänge bereit hält und das Statusregister welches mit 5
digitalen Eingängen
Weitere Infos zum
Hier auch noch zwei Schaltungen zum einbinden ins eigene Projekt:
Eine DLL Datei (Dynamic Link Library ) ist eine Library welche Programmroutinen enthält, die man für sein eigenes Programm nutzen kann. Zum Einbinden der DLL fügt man die unten aufgeführten Zeilen, direkt hinter implementation im eigenen Programm ein. Dabei muss jeder "Befehl" den man aus der DLL nutzen möchte separat angegeben werden. In diesem Beispiel wären dies die beiden Befehle Out32(x) und INP32(x). Wir gehen davon aus, dass die DLL im gleichen Verzeichnis wie das Programm liegt, bzw. die DLL im Windows- Systemverzeichnis platziert wurde. Das angeben des Pfades ist somit nicht notwendig.
Der Befehl zum Ansteuern der Ausgänge, also des Datenregisters lautet Out32(XXX,y). Setzt man mit OUT einen Bit im Datenregister des LPT-Ports, so kann man am entsprechenden Pin eine Spannung von +5V messen. Folgende Tabelle zeigt welcher Bit welchen Pin unter Spannung setzt.
Beispiel:
Um mehrere Ausgänge gleichzeitig zu schalten, nimmt man die Quersumme der Werte in Zeile 2. Möchte man also den Ausgang 2 und 5 Schalten so ist der Wert 18 (2 + 16)
Die so gesetzten Werte bleiben immer solange erhalten bis sie durch einen anderen überschrieben werden. Um alle Ausgänge wieder auf "Null" zu setzen (alles aus) setzt man "0"
Achtung!
Um nun Informationen von Außen in den PC und somit in sein eigenes Programm zu schleusen benutzt man die Bits des Statusregisters, welches die Pins 10-13 und 15 umfasst. Das Statusregister liegt eine Adresse oberhalb des Datenregisters, also 889 statt 888 beim LPT1 und 633 statt 632 beim LPT2.
Sind mehrere Eingangspins mit Masse (GND) beaufschlagt (10-13 und 15) so wird sich der Wert der Variablen entsprechend ändern.
Hinweis!
|
Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !
[letzte Aktualisierung 25.01.2007]