PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : printer port



wolfshund
21.05.2007, 14:43
hallo zusammen

kann mir vielleicht irgendjemand sagen, wie man einen printer port ansprechen kann, bzw. wie man dann mit hilfe der signale die man auf den PC geliefert hat, etwas programmieren kann (also was für ein programm da wohl benötigt wird)

:-s

gruss
wolf

BastelWastel
21.05.2007, 15:06
Wenn ich mir die Frage so durchles hab ich das Gefuehl dass das nix wird o.o
Der PrinterPort ist parallel..Pin Belegung findest du hier http://www.stickybit.de/wissen/computer/grundlagen/schnittstellen/schnittstellen.htm#0002

Das Programm am PC mit dem man was programmieren kann? Software mit der du den Zustand der Pins sehen kannst gibts bestimmt, aber wenn du ne eigene Anwendung darauf aufbauen willst wirst du dir selbst was programmieren muessen...dafuer steht dir ne endlose Auswahl an Sprachen zur verfuegung aber lernen musst du's selbst o.o

radbruch
21.05.2007, 15:42
Zum Progammieren reicht schon das alte GW-Basic. Von Assembler bis Delphi eignet sich alles was auf die Ports des PCs zugreifen kann. Portadressen waren 3f0h und 2f0h soweit ich mich erinnern kann, aber google oder wiki wissen sicher mehr.

mic

wolfshund
23.05.2007, 10:02
hmm ja okay...
programmieren wird kein problem sein..
muss ja für die teilprüfung c beherrschen...
könnte ich denn das programm einfach mit dem c-builder machen?
was müsste da denn alles stehen ausser die adressen?
oder müsste ich da für jede neue funktion die ich an den printer port geben will ein neues programm schreiben? (wieder mit denselben adressen)...

bin eben neugierig ;)

Magge2k
23.05.2007, 11:34
https://www.roboternetz.de/phpBB2/viewtopic.php?t=1841

Netbird
23.05.2007, 14:45
Hallo,

zum Ansprechen des Printerport gibt es eine DLL zum Einbinden mit entsprechenden Befehlen. Such mal unter inpout32.dll oder schau bei www.b-kainka.de nach; allerdings ist das Betriebssystem dabei wichtig. (Mit Windows98 habe ich das in Excel - VBA gemacht) Damit kann man einzelne Bits setzen/ rücksetzen und einige Eingangsbits abfragen.

Wie das in C aussieht, weiß ich nicht. Außerdem sind neuere Druckerports wohl manchmal heikel, wie ich gelesen habe (ohne eigene neg. Erfahrung damit).

AlKI
23.05.2007, 17:44
also mit Qbasic kann man einfach mit

OUT 888, [Zahl]

888 ist die addresse des druckerports in hex-schreibweise
mit [Zahl] gibst du an, was der lpt in bidezimal-schreibweiße (wird so die I/O-schreibweise genannt, bin mir nemme so sicher...) ausgibt.

also Out 888, 1 schaltet Pin D0 auf high; Out 888, 2 schaltet Pin D1 auf high; OUT 888, 4 schaltet pin D2 auf high; 8 schaltet pin D3, 16 D4; 32 D5; 64 D6; und 128 D7
wenn du z.B D0 und D1 an haben willst, mach
OUT 888, 3
weil 1 + 2 = 3

BEACHTE: wenn du erst OUT 888, 1 machst, und dann OUT 888, 2 ; dann bleibt D0 NICHT an. D1 BLEIBT aber bis zum nächsten Ausgabebefehl an.
mit OUT 888, 0 machste alles wieder low (aus).

Phantomix
23.05.2007, 23:10
unter win2k/xp hast du ein problem mit in/out

unter VB könnte ich dir beide DLLs (9x / XP) ansteuern mit einer komfortablen klasse.
die dlls sollten natürlich auch in c funktionieren schreib mir ne PM falls du die brauchst

xunwichtig
24.05.2007, 08:35
Also .. der Paralelport besizt mehrere Seitungen.

1x eine Bidirektionale 1Byte Leitung, (Adresse 888 (Dezimal (nicht hex)) ;) sowie die Status udn Steuerleitungen (Adresse 889).

Die Bidirektionale Leitung verhält sich wie eine Byte-Variable. Du kannst den Port einen Wert zuweisen, als Byte-Wwert, udn dieser Schaltet die 8 Bits des Byte-Ports so, wie du es Binär Codiert in den Dezimalwert übersezt hast.

Gleiches gilt für Die Status und Steuerleitugnen.
Dabei ist zu beachten, das auf die Statusleitungen keine Signale ausgegeben werden können, sondern nur eingegeben!
Bei den Steuerleitugnen ist es umgedreht. Mann kann NUR ausgeben, aber nicht einlesen.

Bei der Bindirektionalen Byte-Leitung ist es so, das man Einlesen UND auslesen kann. (Bidirektional) ;) ...

Ich empfehle dir bei Nuzung des Paraports 2 Mögliche Arten der Nutzung!

Entweder Nuzt du einen Port-Treiber, den du am Parallelport anklemmst, oder du baust dir eine 2te Karte ein! ... Solltest du (warum auch immer) kurzschlüsse auf dem Port veruhrsachen, dann zerlegts dir deinen Paraport-schneller als du denkst. Gleiches gilt für überlastungen.

Mit einer Zusatzkarte kannst du vermeiden, das der Boardinterne Port kaput geht. Mit dem Porttreiber (Z.B. ein ULN2803), läst sich der Port ebenfalls schüzen. Desweiteren kann dieser Treiber bis zu 500mA Treiben, was sehr ideal für kleien ANwendungen geeignet is. Und, wenns den zerlegt, is dein Port immerhin noch gerettet.

Der ULN kostet grad mal n Euro, und spart dir 100E Motherboard-Kosten ;)

Der anschluss des ULN ist ebenfalls recht einfach. Der ULN besizt 8 Darlingtons (Darlingtonarray genannt), der direkt (ohne vorwiederstände, oder der gleichen) an die Bidirektionale Schnitstelle angeschlossen werden kann. "Heraus" kommt aus diesem Treiber nichts. Dafür verhält er sich wei ein Negativ-Schalter. An den ULN wird +, -, Signale, und die "Geräte" angeschlossen.

Die zu schaltenden Geräte werden intern im ULN, wenn es der PC befielt, nach Masse hin durchgeschaltet, und nicht nach Plus!!!. Das heist, das du z.B. bei nuzung eines Relais am ULN das Relai an Plus klemmst, und den anderen anschluss des Relais an den ULN.

Programmieren ist ebenfalls recht einfach. Unter XP gibt es Spezielle Treiber, da auf manchen Systemen Probleme mit der IO.dll, oder der IMPOUT.dll entstehen können.

Wobei die IMPOUT.dll die bessere wahl wäre, da sie den Zugriff etwas effizienter unter XP regelt, als die IO.dll. Alternativ gäbe es auch die Port.dll.

Also zu Paraports findest sicher genug Infos, und Beispiele im Netz.


JimJim
XUN