Parallel Port Pins

Gast #1437906
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.