Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 

Re: Einlesen von Daten über Parallele Schnittstelle

  Alt 22. Jan 2009, 19:12
So, ich habe mich nochmal damit beschäftigt.

Das xDrv-Beispiel funktioniert wunderbar.

Wichtig ist, dass im BIOS eingestellt ist, dass der Parallelport auch auf EPP und/oder ECP gestellt ist. Dies ist wichtig, damit der Bidirektionale Betrieb überhaupt funktioniert. Also das Lesen von D0-D7. Um den Interrupt benutzen zu können ist wichtig, dass in den Systemeinstellungen von Windows (Gerätemanager) der Interrupt aktiviert/erlaubt wird.

Um nun Daten lesen zu können, muss das Extended Control Register (ECR) auf Bidirektional umgestellt werden. Das bedeutet, dass es nun zwei Möglichkeiten gibt Daten zulesen. Es ist nun möglich das Outputregister auszulesen, also den Wert, den der PC auf die Pins (D0-D7) legen möchte.
Oder aber man ließt die Werte aus, die tatsächlich von außen an die Pins (D0-D7) angelegt werden.

Beim Schreiben der Werte muss das ECR auf Output geschaltet werden, damit die Werte, die rausgeschrieben werden sollen auch wirklich an den Pins angelegt werden.

Ich habe dazu mal eine kleine Beispielanwendung geschrieben. Mit einem Multimeter und einem kleinen Stück Leitung konnte ich so alle möglichen Kombinationen super austesten.

Hinweis: Das Initialisieren des Treibers funktioniert nur mit Administratorrechten!

Kombinationen:
- Pin 10 auf Masse ziehen -> Interrupt wird ausgelöst
- Pin 2 - 9 auf Masse ziehen -> Port lesen ergibt den zugehörigen Dualwert
- Pin 2 - 9 Multimeter anschließen -> Port schreiben, erzeugt 0V bzw. 5V am jeweiligen Pin
Angehängte Dateien
Dateityp: zip xdrvtest_137.zip (14,6 KB, 53x aufgerufen)
  Mit Zitat antworten Zitat