Parallel Port Pins

Gast #1437906
Lesenswert?

vorab sry für die blöde Frage. Ich habe hier ein C-Programm, bei dem ich 
eine Sache nicht verstehe.

Die Zeile:
_outp(0x37A, 0x09);

Ich weiß bis jetzt, dass man durch Einbinden von conio.h einfach so die 
parallele Schnittstelle ansteuern kann. Aber was bedeuten die Ausdrücke 
in der Klammer?. 0x37A soll die Adresse des Ports sein und 0x09 der 
Pin???
In den Beschreibungen sind die Pins immer einfach durchnummeriert. Wo 
ist der Zusammenhang?
Gast #1438277
Lesenswert?

Hallo,

ganz so einfach ist die Sache leider nicht.

Grundsätzlich: Das Kommando
> _outp(0x37A, 0x09);
schreibt in das Register an Adresse 0x37a das Datenbyte 0x09. Damit 
werden 2 Steuerleitungen des Parallelports kontrolliert.

Zur näheren Information:
Ein PC-Parallelport-Baustein hat normal 8 Datenleitungen, 5 
Status-Eingänge und 3 bis 4 Steuer-Ausgänge. Er beinhaltet 3 Register 
(hier die von LPT1):

- 0x378 = Daten-Register; dieses steuert entweder die Ausgangs-Pins 
D0-D7 oder liest sie ein (je nach Konfiguration).
- 0x379 = Status-Register; hier kann man einige Eingänge des 
Parallelports einlesen (teilweise invertiert).
- 0x37a = Steuer-Register; hier werden die Steuerleitungen und die 
Konfiguration der Datenleitungen eingestellt.

Suche mal nach "Parallelport"; hier wirst Du schnell fündig.
Persönliche Seite #1438288
Lesenswert?

Oh, ich hatte in der Eile angenommen, daß das Datenregister beschrieben 
würde.

Kommando zurück; "Spezi" hat recht.

Allerdings sei noch der Hinweis erlaubt, daß unter Windows der 
Parallelport nicht auf diese Art und Weise angesprochen werden kann 
(Ausnahme sind die DOS-basierenden Frickelversionen 95-Me), ohne daß 
zusätzlicher Aufwand getrieben wird (Treiber à la giveio.sys).

Hinzu kommt noch, daß das nur mit echten Parallelports geht, nicht 
aber mit den üblichen USB-Paralleldrucker-Kabeln.
Die Ausnahme stellt hier der Selbstbau-Adapter von Henrik Haftmann dar.
Gast #1438576
Lesenswert?

Hallo!
Das Chaos wird perfekt wenn man weis, das einige Bits (D0, D1 und D3) 
invertiert ausgegeben werden. Beim abgedruckten Beispiel liegt also am 
D-SUB 25 folgendes an: Pin1=L, Pin14=H, Pin16=L, Pin17=L.
Die Bits D4...D7 sind nicht nach Außen geführt.

Beim Statusport (0x379) sind auch nur die Bits D3...D7 als Input 
verfügbar. Davon ist allerdings D7 invertiert!

Die Datenleitungen (Port 0x378) sind historisch nur Ausgänge und deshalb 
nicht bei allen Parallel-Schnittstellen als Input nutzbar.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren