www.mikrocontroller.net

Forum: PC Hard- und Software keine Kommunikation über Druckerport trotz inpout32.dll


Autor: Rocco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

irgendwie hängt es gerade bei mir.
Ich versuche z.Z. Ein einfaches Programm (C++) auf einem alten Laptop 
zum laufen zu bekommen.
Am PC (Win XP) läuft es. Auf den Laptop (auch Win XP) nicht.

Was auch interesant ist, ist das alle Dateleitungen (D0...D7) am PC beim 
einschalten bis Windows hochgefahren ist, an sind und an bleiben.
Am Laptop werden beim einschalten alle ein geschaltet und ab einem 
bestimmten Punkt, zudem Windwos noch hoch fährt, leuchtet nur noch D1 
und der rest wird von Windows ausgeschalten.

Die inpout32.dll ist im system32 Ordner.

Ich habe auch schon alle Einstellungen im Bios versucht (Bidirectional, 
ECP, EPP, nur Output). Leider hat nichts bewirkt.
Irgendwie lässt mich Windows nicht mit der LPT Schnitstelle 
kommunizieren.

Ich wäre für jede Idee dankbar.

fG Rocco


Und hier der Code - ein einfaches Lauflicht:
#include <iostream>            //schreiben in C++ Sprache
#include <conio.h>            //_inp() und _outp() liegt hier drin
#include <windows.h>        //Sleep() liegt hier drin

using namespace std;        

#define DELAY 100
#define LPT1 0x378
#define VSS 0x01    //bit für LM75 Spannungsversorgung auf HIGH
#define SCL 0x02    //bit für LM75 serial clock auf HIGH
#define SDA 0x04    //bit für LM75 serial data auf HIGH

int main ()
{
    for(int i=0; i<8; i++)
    {
    _outp(LPT1, 0x01 );
    Sleep(DELAY);
    _outp(LPT1, 0x02 );
    Sleep(DELAY);
    _outp(LPT1, 0x04 );
    Sleep(DELAY);
    _outp(LPT1, 0x08 );
    Sleep(DELAY);
    _outp(LPT1, 0x16 );
    Sleep(DELAY);
    _outp(LPT1, 0x32 );
    Sleep(DELAY);
    _outp(LPT1, 0x64 );
    Sleep(DELAY);
    _outp(LPT1, 0x128 );
    Sleep(DELAY);
   
    cout << "ping";
   
    }

    return 0;
}

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die DLL ist für diese Art von I/O-Port-Ansteuerung nicht das richtige 
Mittel.
Um _outp (und entsprechend _inp) nutzen zu können, brauchst Du einen 
Devicetreiber wie z.B. giveio.sys.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.