Anzeige:
Ergebnis 1 bis 11 von 11

Thema: Parallelport ansteuern

  1. #1
    Gast

    Post Parallelport ansteuern

    Wie kann ich den Parallelport ansteuern???

    Hat vielleicht jemand ein kleines Beispiel??


    Danke

  2. #2
    Gast

    Question

    Sicher dass das auch unter Linux geht???

    ich dachte unter Linux könnte man nicht direckt auf die Hardware zugreifen.

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.10.1999
    Ort
    Dresden
    Beiträge
    255

    Post

    Das Beispielprogramm läuft nicht.

    Unter Linux greifst Du eigentlich nur über die Gerätedateien auf die Hardware zu und diese verhalten sich dem System gegenüber wie ganz normale Dateien, d.h. Du sprichst sie ebenso an, wie Du es bei Dateien handhabst.

    Um also die erste parallele Schnittstelle zu öffnen, verwendest Du "open":

    <pre>
    ...
    int fd;
    fd = open( "/dev/lp1", O_RDWR );
    ...
    </pre>

    Die notwendigen includes erfährst Du aus dem Manual "man 2 open". Das übersetzte Programm sollte der Gruppe "lp" gehören, um die Schnittstelle öffnen zu dürfen, sonst gibts ein "permission denied". Alternativ könntest Du das Programm als Root ausführen oder die Rechte des Devices aufweichen, aber davon ist aus Sicherheitsgründen abzuraten.

    Ach ja, um wirklich auf unterem Level IO zu programmieren (z.b. zum Schreiben eines Treibers) verwendet man Befehle wie "outb" und in den seltesten Fällen reinen Assemblercode.

    Thomas

  4. #4
    Gast

    Question

    Also das öffnen ist ja kein Problem, aber wie kann ich denn jetzt die Leitungen ansteuern???
    Wie kann Daten senden oder bestimmen ob STROBE high oder low ist??

    ich schätzt mal ich muss das mit ioctl machen.
    aber was für Parameter muss ich da angeben??

    Vielleicht könnt ihr mir ja noch mehr helfen. Gibt es irgdenwo Infos zu C unter Linux.

    Danke

  5. #5
    Gast

    Post

    Tach WWG2000,

    ich hab zwar keine Ahnung, wie man Assembler-Code in C einbindet, aber dafür in Pascal. Der wichtigste Teil ist dabei sowieso die Assembler-Routine...

    Die Datentypen von Pascal:
    word.....vorzeichenlose ganze Zahl von 0 bis 65535
    byte.....vorzeichenlose ganze Zahl von 0 bis 255

    procedure SetPort(PortNr: word; wert: byte);
    begin
    asm
    MOV DX,PortNr;
    MOV AL,wert;
    out DX,AL;
    end;
    end;

    function GetPort(PortNr: word):byte;
    var wert: byte;
    begin
    asm
    MOV DX,PortNr;
    IN AL,DX
    MOV wert,AL
    end;
    result:=wert;
    end;

    Die Port-Nummer kannst Du beim Booten den BIOS-Einstellungen oder den Kernelmeldungen entnehmen... meistens ist das aber 0x0378 (Für das Daten-Byte).

    Hoffe geholfen zu haben.

    djlauk

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.10.1999
    Ort
    Dresden
    Beiträge
    255

    Post

    ioctl ist korrekt, mit "man ioctl_list" erhälst Du eine Liste, die auch die Parameter des Parallelports enthält. Weitere Informationen stehen in der Datei include/linux/lp.h (Kernelquellen).

    Schreiben/Lesen funktioniert wie bei Dateien mit write/read.

    Thomas

  7. #7
    Registrierter Benutzer
    Registriert seit
    09.10.1999
    Beiträge
    61

    Exclamation

    Hi
    djlauk
    Wenn´s Dich noch interessiert Es gibt bei Linux auch die Möglichkeit direkt auf die HW zuzugreifen. Das Stichwort dazu lautet ioperm
    Am Besten Du suchst mal nach ioperm in ein einer Suchmaschiene oder
    in den lib Beschreibungen dort sind auch Beispiele beschrieben.

    Hier im Forum ist auch schon mal etwas zu diesem Thema geschrieben worden.
    Also versuchs mal mit der Forensuche.
    Die Ausgaben an den Ports können können genau wie in Assembler mit In und
    Out-Befehlen gemacht werden.

    Hier noch ein paar Links : http://tph16.tuwien.ac.at/cgi-bin/dw...ation=ioperm/2
    Das Ganze steht auch noch in man2 !

    Hier noch die Adresse für ein Howto, wo, und ob das bei Dir installiert ist weis ich nicht. http://www3.htl-hl.ac.at/doc/howto/e...ming.html#toc8

    Und noch ein Beispiel : http://www.linux-magazin.de/ausgabe/...uhr/dcf77.html

    Bleibt vielleicht noch zu sagen das für die Zugriffe root-Rechte nötig sind.

    Gruss
    Christoph



  8. #8
    Registrierter Benutzer
    Registriert seit
    09.10.1999
    Beiträge
    61

    Wink

    Hallo ich noch mal
    ich habe noch einen guten Link vergessen. http://experte.kt2.tu-harburg.de/RTX...ux/node19.html

    CU
    Christoph

  9. #9
    Gast

    Post

    Dann sag ich erstmal danke an alle. Werde man alles ausprobieren. Bei Problemen meld ich mich noch mal


  10. #10
    Gast

    Unhappy

    Hi Jungs!

    Sorry, ich dachte das ginge unter Linux genauso wie unter M$-DOS, da es eben auf nächster Nähe zur Hardware gecodet ist. Wollte keine falschen Wahrheiten verbreiten. Aber danke, so habe ich auch etwas gelernt.

    Ciao,

    djlauk

  11. #11
    Gast

    Smile

    Yo,

    ich danke auch recht herzlich. Man lernt nie aus... oder dazu? Na egal!

    Ciao Leute!

    djlauk

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •