Zurück zum Menü 5 5.3.1 Druckerport mit PureBasic steuern Erste Fassung: Februar 2008 |
In dieser Kurzanleitung will
ich einmal darstellen, wie man den Druckerport mit PureBasic steuern
kann.
Den Schaltplan für eine passende LPT-Ausgabeeinheit mit LEDs
findest du hier.Wer einmal eine Demo oder gar eine Vollversion von PureBasic installiert hatte, der wird festgestellt haben, dass es für die Userports keine Eingabe- und Ausgabebefehle gibt. Das sollte Dich aber nicht entmutigen oder gar ein falsches Bild der sehr guten Programmierprache erzeugen. Also: Wie
steuert man denn
nun den LPT-Port mit diesem Basic richtig an ?
So. Wir brauchen also eine "DLL" und die DLL, die ich ausgesucht habe,
macht es besonders einfach, damit umzugehen. Man kopiert sie einfach in
das Verzeichnis, wo auch später die Programm-EXE gespeichert ist.Wer sich ein wenig mit PCs
beschäftigt hat, der wird sicherlich schon einmal von "DLLs"
gehört haben, so genannten "Dynamic-Link-Libraries".
Das
sind
quasi
kleine Programme die von einem übergeordneten Programm aus
gestartet und abgefragt werden können.
Es gibt im Internet eine DLL, die speziell für den Datenaustausch über die Userschnittstellen gemacht worden ist. Leider ist die Erklärung dazu komplett auf Englisch und es ist recht mühsam sich da durch zu "fummeln". Deshalb habe ich dem Downloadpaket (weiter unten) auch eine Deutsche Textdatei beigelegt. Am besten, du führst erstmal den Download durch und schaust in das Tutorial, dass ich dem Originalordner beigelegt habe: Download
(inpout32.dll_source-and-bins,
ZIP 69 kB)
Das erklärt dann
eigentlich schon alles, aber falls Du
diesen Download jetzt nicht
machen willst oder kannst, hier das Tutorial einmal als
Quelltext
herauskopiert:
Quelltext vom 10.02.2008: ; --- www.strippenstrolch.mischnick.orgErstellt am 10.02.2008 von Stephan Mischnick ; Hast Du die Datei "inpout32.dll" in das gleiche Verzeicnis kopiert, wo auch das ; Programmliegt ? ; WICHTIG: ; Hast Du im BIOS den Modus "normal" (EPP) für den LPT-Port eingestellt ? Oft scheitert ; die Ausgabe und das Einlesen an einem im BIOS falsch eingestellten LPT-Port. ; Hast Du im Windows-Gerätemanager nachgeschaut, welche Adresse Dein LPT-Ausgang hat ? ;(aufschreiben...) ; Rechne den HEX-Wert der LPT-Adresse in DEZ um: Verwende den WIN-Taschenrechner in der ; wissenschafltichen Ansicht dazu. ; Normalwert dann meist: 888 (DEZ), kann aber auch abweichen. ;Variable vorbereiten, schreibe hier den dezimalen Wert der LPT-Port-Adresse hin: x = 888 ; Variable für den Datenwert vorbereiten, er wird hier als Binärwert (%) eingegeben, ; man kann dann besser gucken, was man gemacht hat y = %11001100 ;Die DLL öffnen (Biblitothek "0", Name "dlport.dll"): OpenLibrary(0,"inpout32.dll") ; Die Funktion innerhalb der DLL ansprechen. "Out32" muss auch genau so ; geschrieben werden, denn so heißt nunmal die benötigte Funktion innerhalb der DLL, ; um ein Byte zu schreiben. Nach dem Komma wird die Adresse des LPT-Anschlusses eingesetzt, ; nach dem letzten Komma steht der zu schreibende Wert: CallFunction(0,"Out32",x,y) ; Die DLL schließen (Bibliothek "0"): CloseLibrary(0) ; Programm beenden End ;Wenn nun alles richtig eingetragen ist, kannst du den Wert %xxxxxxxx verändern und dann ; F5 drücken, um das Programm zu kompilieren und auszuführen. Wenn alles richtig gemacht wurde, ; stellt sich an der Testkarte genau das gleiche Bild ein, wie du mit dem Wert "%xxxxxxxx" angegeben ; hast. ; Lesefunktion der inpout32.dll ist: ; Wert = CallFunction(0,"Inp32",Adresse) Download
dieses Tutorials als PB-Quelltext (tutorial-1.pb, 2kB)
Ich benutze auf dem
strippenstrolch.de stets den 2N2222 als
allgemeinen Transistor. Aber auch jeder andere NPN-Typ
dürfte in der Schaltung funktionieren.
Dieses Teil kann ganz einfach
mit einer 4,5 Volt Flachbatterie betrieben werden. Und kann somit auch
am
"guten PC-Arbeitsplatz", wo man vielleicht gerade kein Labornetzteil
hat, als Testplatine beim
Programmentwurf dienen.
Hier noch einmal meine Testplatine, die gerade mit dem Wert des Tutorials "gefüttert" wurde: Weitergehende Hilfe gibt es hier:
http://www.purearea.net/pb/german/index.htm Ich habe auch meinem Sohn Jan
(14) ein wenig "Starthilfe" gegeben und der programmiert inzwischen
besser als ich. Er hat sich eine eigene Homepage zum Thema PureBasic
erstellt:
www.proggs4u.de.vu Viel Erfolg,
|
|