kostenloser Webspace werbefrei: lima-city


Paralel-port in C/C++?

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    mkalte666

    Kostenloser Webspace von mkalte666

    mkalte666 hat kostenlosen Webspace.

    Hallo!
    Ich würde gerne mit Meinem Windows-PC die Paralele Schnitstelle in C/C++ ansteuern, hab aber keine ahnung, wie das gehen soll...
    Danke schon mal für die Antworten!!!
    LG
    mkalte666
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo mkalte666,

    für das direkte ansteuern der parallelen Schnittstellen musst Du Dir eine extra Dll besorgen:
    Das Original für Win 98/2000/NT/XP:
    http://logix4u.net/parallel-port/16-inpout32dll-for-windows-982000ntxp
    Portierung für Win7 (x86/x64):
    http://www.highrez.co.uk/Downloads/InpOut32/default.htm
    Um die Sachen zu benutzen, musst Du je nach verwendeten System und ob Du 32- oder 64-Bit programmierst entweder die inpout32.lib oder die inpoutx64.lib zu Deinem Projekt hinzufügen (verlinken).
    Den Header inpout32.h musst Du Dir auch ins Projekt kopieren und in die Quelldatein inkludieren.
    Wenn Dein Parallelport onboard ist, dann sollte die Hardware-Adresse für LPT1 0x378 sein.
    Lesen kannst Du dann mit
    short int val = Inp32(0x378);
    und schreiben mit
    Out32(0x378, wert);
    Wichtig ist, dass Du die Dll (inpout32.dll bzw. inpoutx64.dll) in das Verzeichnis mit der Exe kopierst, damit sie vom Programm geladen werden kann.

    Beitrag zuletzt geändert: 12.2.2012 16:32:55 von darkpandemic
  4. Autor dieses Themas

    mkalte666

    Kostenloser Webspace von mkalte666

    mkalte666 hat kostenlosen Webspace.

    Danke!!!
    Das is das, was mir google nicht geben wollte... THX
    Aber wie setze /lese ich die einzelnen Anschlüsse?
    Ich hab leider Keine Ahnung von der Programmierung von ausgängen...
    LG
    mkalte666

    Beitrag zuletzt geändert: 14.2.2012 18:28:37 von mkalte666
  5. Hallo mkalte666,

    mit dem von mir angegebenen Codezeilen kannst Du im Normalfall die Datenpins lesen und schreiben. Die Datenpins sind die Pins 2 bis 9 bei einem 25-poligen Anschluss. Ob ein Pin auf High oder Low gesetzt wird, wird durch den Zustand des zugehörigen Bits im übergebenen Short Integer festgelegt.
    Wenn Du willst, dann kannst Du folgende Defines verwenden:
    #define PIN1 1
    #define PIN2 2
    #define PIN3 4
    #define PIN4 8
    #define PIN5 16
    #define PIN6 32
    #define PIN7 64
    #define PIN8 128

    Wenn Du dann z.B. Pin 1 und 3 auf High setzen willst, dann kannst Du die Makros per Oder '|' verknüpfen. Das sieht dann so aus:
    Out32(0x378, PIN1 | PIN3);
    Wenn Du überprüfen willst, ob bestimmte Pins von außen gesetzt sind, dann funktioniert das mit Hilfe der bitweisen Und-Verknüpfung '&'. Wenn das entsprechende Bit gesetzt ist, dann ist die Bedingung im if ungleich Null und folglich Wahr. Ansonsten ist sie Null, also falsch:
    short int pins = Inp32(0x378);
    
    if(pins & PIN1)
        printf("Pin 1 ist High");
    
    if(pins & PIN6)
        printf("Pin 6 ist High");
    Desweiteren kannst Du mit der Adresse 0x379 (=0x378+1) auf die Status-Pins zugreifen (nur lesen / Pins 10, 11, 12, 13 und 15). Mit der Adresse 0x37a (=0x378+2) hast Du Zugriff auf die Control-Pins (nur schreiben / Pins 1, 14, 16, 17).
    Auf der folgende Seite gibt es dazu auch schöne Bildchen. Wenn Du Englisch kannst, dann ist der Text vielleich auch ganz interessant:
    http://www.logix4u.net/parallel-port/15-a-tutorial-on-parallel-port-interfacing
  6. Autor dieses Themas

    mkalte666

    Kostenloser Webspace von mkalte666

    mkalte666 hat kostenlosen Webspace.

    Danke!!!
    Ich mach mich dann mal an das Programmieren!!!
    Hast mir sehr geholfen, danke.
    LG,
    mkalte666
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!