PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wie beschalte ich LPT zum lesen?



mojo777
29.08.2006, 17:34
hallo,
kann mir vll. jemand kurz sagen, wie eine schaltung aussehen soll damit
ich den lpt port im assembler auslesen kann?
asm:

function ReadPort(Port: word): byte;
begin
asm // Befehle für Inlineassembler folgen
MOV DX,Port // Variable Port in DX-Register bewegen
IN AL,DX // Einlesen der Daten(AL) vom dem Port(DX)
MOV Result, AL // Daten(AL) in die Rückgabevariable
// bewegen
end;
end;

ich habe bisher folgendes probiert..
http://pilaf.ath.cx/pub/schaltung.gif

.... klappt nicht. (lpt läuft glaub ich noch :mrgreen: )

gruß

mojo777
29.08.2006, 19:24
hallo==????
ihr habt das doch schon alle 1000x mal gemacht... kann mir denn keiner auch nur einen tipp geben?

womb@t
29.08.2006, 20:24
Ich kann dir zwar nicht helfen aber wenn man nach n paar Stunden so was schreibt brauchst du nicht mehr warten, es sei denn es ist jemand so gnädig und hilft dir trotzdem

robocat
29.08.2006, 20:36
PC parallel port has 5 input pins. Those inputs can accept TTL level signals (0-0.7V = logic 0, 2.4-5V = logic 1). You can connect a TTL level output signal to it directly (remeber to attach the signal source ground to parallel port ground).

welche ports das sind, findest du sicher raus.

danach port abfragen:

MOV DX,0379H
IN AL,DX

das geht aber nicht unter win xp.

hilft das bissl weiter?

mojo777
29.08.2006, 21:29
hirobocat,
danke erstmal.
aber das ist glaub ich was ich oben gemacht habe. zwar ohne transistoren aber halt mit einer direkt angelegten spannung...
und auf gnd bringen heisstdochkurzschlissen, oder?
...

das mitder portsteuerunghabichunter xperledigt...mussteerstportTalkrunterladen... damitklappt dasohne probleme. (die geschw.und reaktionhab ich noch nichtgetestet...)

muh..... bin amverzweifeln....:-(

Slein
29.08.2006, 22:15
Hi!

Kann dir nur ein paar Tips geben, für genaue Beschreibungen ists zu lange her...

1. täte ich erstmal den Weg vom LPT nach draussen testen, mal einen Pin auf 0, mitm Multimeter nachmessen, dann denselben Pin auf 1, wieder nachmessen. So siehste, ob das mit XP überhaupt tut
2. sind D1... beim Standard LPT reine Ausgänge, also mal im BIOS nachsehn, ob Standard LPT oder ECP/EPP eingestellt ist (falls es dann wirklich als Eingang nutzbar ist, ich weiß es nicht genau)

Wenns bei 1. schon klemmt, ich hab damals "directio" unter Win2k benutzt, war ein wenig kompliziert und ich hab keinerlei Plan obs unter XP (SP2?) noch tut.

Das mit der Geschwindigkeit und Timing ist eine Geschichte für sich, wirklich genau und schnell wirds nicht werden. Nicht ohne eigenen Treiber.

Have Phun

Mobius
29.08.2006, 22:49
1. täte ich erstmal den Weg vom LPT nach draussen testen, mal einen Pin auf 0, mitm Multimeter nachmessen, dann denselben Pin auf 1, wieder nachmessen. So siehste, ob das mit XP überhaupt tut Tuts bei XP sicher nicht ;) Weil ab Windows NT ist es, so, dass nur noch das Betriebsystem und die Treiber einen direkten Portzugriff erlauben. Alle anderen Programme werden Gepoolt, bzw. wenn einer versucht ein direktes Lesebefehl auszuführen (wie zb.: _outp oder outportb von TurboC), wird das Programm ohne viel aufbegehren abstürzen (Memory Access Violation).

Ansonsten, die Dateinleitungen des SPP sind unidirectional, also wird das so, wie du es gezeichnet hat nicht gehen. Wenn du aber EPP oder ECP aktiviert hast, hast du im Status Register ein Bit, mit dem du die Daten-Eingänge auf Input stellen kannst. Oder aber du nutzt die 4 invertierten und den einen nicht invertierten Steuereingang.

Hals und Beinbruch

mojo777
29.08.2006, 22:53
hallo mobius,
als die ausgabe funktioniert bei mir unter xp gut (kein sp2....).

kannst du mir evtl einen link geben, wo ich mehr über diese invertierten steuereingänge nachlesen kann?


grüße!

Mobius
29.08.2006, 22:57
http://www.beyondlogic.org/spp/parallel.htm

Hab ich endlich wiedergefunden, die Seite ^_^.
MfG
Mobius