Hallo zusammen! Ich versuche gerade von C# aus den Parallel-Port meines Rechners anzusprechen (ich weiß, oldschool). Allerdings tut sich da garnichts :-( Folgende Situation ist gegeben: - Ich ahbe einen Rechner mit Wind7 x64 - Am Mainboard befindet sich ein nativer LPT-Port - Dieser wird von Windows erkannt und mit der "normalen" Adresse (0x378) versehen - Ich habe die "InpOutx64 DLL" installiert (http://www.highrez.co.uk/Downloads/InpOut32/default.htm) - Nun starte ich das dazugehörige Demo-Programm. Dieses wirft keine Fehler und behauptet vom Port lesen und auf diesen schreiben zu können Allerdings messe ich immer nur 4,3V an allen Ausgangspins, egal was ich auf den Port schreibe (z.B. 0 oder 255). Auch beim Lesen tut sich nichts: ich kann belibige Pins auf Masse ziehen, aber es wird immer eine 255 gelesen. Messen tue ich übrigens zwischen den Pins 2 (Databit 0?) und 25 (Masse?). Hat Jemand eine Idee woran das liegen könnte? Gruß, Sharping
Wie ist dein Port denn im Bios eingestellt? Dort gibt es verschiedene Möglichkeiten die auch unterschiedliche externe Beschaltungen erfordern! Auch der Zugriff auf die Register ist anders! Gruß Dietmar
Hm, der steht auf PS2 (IBM...). Allerdings gibt es noch 1 Million weitere Möglichkeiten. Hättest du einen Tipp welche die richtige ist? So, dass ich dann einfach die Bits setzen/lesen kann? Danke!
Sharping schrieb: > Hm, der steht auf PS2 (IBM...). Der Parallelport? Üblich ist die Auswahl zwischen "ECP", "EPP" oder "Standard". Das sind drei Möglichkeiten, nicht eine Million.
Schalt mal in den Diensten den Windows Print Spooler ab, eventuell hat der da auch noch die Finger drauf.
@Rufus: Standard gibt es nicht - bei mir sind das: - diasbled - AT - PS/2 - EPP - EPC no dma - EPC dma 1 - EPC dma 3 Mittlerweile habe ich aber alle durchprobiert, das Verhalten ist immer das gleiche (nämlich keins). @Joerg: Wie genau schalte ich diesen Dienst ab? Da kenn ich mich leider nicht so aus...
Sorry, hab gerade kein Windows 7 vor mir, aber der normale Weg ist via Systemsteuerung, dort dann kleine oder große Symbole als Anzeige auswählen, dann erweitert sich die kastrierte Icon Auswahl zu dem was man noch aus XP kennt. Dort taucht dann auch ein Icon "Verwaltung" auf, da drin kann man dann die Dienste verwalten. In der Diensteliste (auch da hat Bill G. umbenannt) nach dem Spooler Dienst suchen, der taucht unter XP als "Druckwarteschlange" auf, ob er unter 7 noch genau so heisst kann ich jetzt leider nicht runterbeten. So oft wurstel ich unter 7 nicht in den Diensten rum. Da kannst du den Dienst starten, stoppen oder deaktivieren. Aber: bei gestopptem Spooler geht kein Drucker mehr!!! Testweise kannst du auch eine Dos Box unter Ausführen aufmachen, dazu einfach CMD eingeben und ne DOS Box kommt. In der DOS Box "net stop spooler" eingeben, dann hält der Spooler an. mit "net start spooler" kannst du den wieder starten. zur Rufus Frage: ich würde AT Modus wählen, der sollte klassiche Ausgabe ermöglichen. Der PS/2 kam nach dem AT, und möglicherweise hat IBM da was dran geschraubt. Die EPP Modi sind für volle bidirektionale Kommunikation mit Druckern eingeführt worden, da hat sich noch mehr geändert (damit fing die Seuche mit den ständigen quakenden Druckertreibern an...) Zum testen würde ich nicht messen sondern eher ein uralten Nadeldrucker oder HP Tintenpisser (die 500er Serie konnte das noch) anhängen und einfach mal ASCII Zeichen ausgeben.
PS/2 wird wohl "BPP" (bidirectional parallel port) sein, das ist AFAIR ein seltsamer Modus mit 4bit In und 4bit Out. Gruß, Christian
da werden die Modi und ihre Eigenheiten doch erwähnt. Lang ist es her... http://de.wikipedia.org/wiki/IEEE_1284
Joerg schrieb: > auch da hat Bill G. umbenannt Das hat Bill nicht selbst gemacht, sondern einer seiner verfi... Software Designer.
Probier doch mal eine einfache Textdatei "auszugeben" Erstelle mit dem Editor eine Textdatei und schreibe irgendwas da rein z.B. enemenemu. Dann eine DOS-Box öffnen und "Type [Deine Textdatei] >LPT1" eingeben.
Sharping schrieb: > - Ich habe die "InpOutx64 DLL" installiert Wenn die aus einem Usermode-Programm aufgerufen wird, dird I/O wohl trotzdem scheitern, wenn dies nicht gerade ein Kernelmode-Treiber ist. Früher gab es für sowas einen "GiveIO"-Treiber, mit dem man sich den Zugriff auf den ParPort für Usermode-Programme freischießen konnte. Wenn Du ohnehin selbst programmierst und auch ein spezielles API ansprechen kannst, wäre dies eventuell das Richtige: http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/ul-15.de.htm Dieses Teil versucht Hardwarezugriffe abzufangen, was aber nicht immer zuverlässig funktioniert, bietet aber auch ein API für Usermode-Programme, das zuverlässig laufen sollte. mfG ingo
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.