Forum: Mikrocontroller und Digitale Elektronik Parallel Port Pins


von salre (Gast)


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?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Der zweite Parameter ist das Bitmuster, das an den Pins D0..7 ausgegeben 
wird.

Mit 9 werden die Pins D3 und D0 auf High und alle andere auf Low 
gesetzt.

von Spezi (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Route_66 (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.