Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
02.03.2002, 16:43
Gott



ich weis das der parallelport am pc
12 ausgänge und 5 eingänge hat
ich hab mir ne eingene schaltung entworfen und bin dabei nen prob zu basteln mit dem ich das ansteure abeer mir fehlen die befehle dafür
wie ich die einzelnen pins ansteuere
hier nochma nen bild
http://www.martins-kabuff.de/index.html?./computer/parport.html

jetzt bräuchte ich für pascal die ansteuerbefehle und wenn jemand weis die empfangsbefehle wäre für jede hilfe dankbar

--

millirem und bequerel , kleine kinder sterben schnell

Arsch für alles bei War in Europe
www.warineuropemod.com

zum Seitenanfang zum Seitenende Profil || Suche
001
02.03.2002, 16:59
TheTinySteini



Bah, ein paar Threads weiter unten gibt's dazu genaue Ausführungen. Einmal in dem von mir über WinAMP-Plugins und dann noch in dem "Stromsteuerung"-Thread.

Der Befehl dürfte unter Turbo Pascal sogar direkt existieren, sowas wie out( portnummer, wert). Portnummer is normalerweise der Hexwert 0x378 (nachgucken im Gerätemanager), als Wert musst du einfach die jeweiligen Zweierpotenzen addieren. Also Pin 0 und 3 an: 2^0 = 1, 2^3 = 8 -> Wert = 9.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
002
02.03.2002, 17:00
feigling



Ich sag nur
http://www.thewall.de/ThWboard/showtopic.php3?threadid=23437&time=1015012693
Viel Spaß dabei :)

--

zum Seitenanfang zum Seitenende Profil || Suche
003
02.03.2002, 17:03
Retro



Das hatten wir doch letztens schon... ich hab auch grad ne kleine Schaltung dazu gelötet (ums mal zu testen) hier der Schaltplan:


Nicht auf dem Schaltplan: Masse des 25SUB-D muss auch an die Masse der Schaltung!

Und hier Das Programm in Delphi:Quellcode:[b]procedure[/b] OutPort(PortAddr: Word; Databyte: Byte); [b]assembler[/b]; [b]stdcall[/b];
[b]asm[/b]
  mov al, Databyte
  mov dx, PortAddr
  out dx, al
[b]end[/b];

[b]procedure[/b] TForm1.BtnSendClick(Sender: TObject);
[b]begin[/b]
  OutPort($378, StrToInt(EditByte.Text));
[b]end[/b];
So... die Funktionen hab ich aus dem Thread:
- http://www.thewall.de/ThWboard/showtopic.php3?threadid=23437&time=1015004718

Die acht Ausgänge haben die Adressen: [1, 2, 4, 8, 16, 32, 64, 128] Ist ja irgendwie logisch ;) Per Addition kannst du mehrere aktivieren!

Wurde auch schon alles in Betrieb genommen und funktionier bestens! :)
Wie man Eingänge einlesen kann weiss ich aber auch nicht, würde mich aber intressieren...

P.S.: Die Vorwiederstände sind für 5V, also 120 - 150 Ohm...

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 02.03.2002 um 17:05 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
02.03.2002, 18:17
Gott



schaltung ähnelt meiner ich nehme dafür profilab expert 2.0 und hab die leiterplatte über wiederstandt und transistor geschaltet ( für später relais ) erstma LED
jo nützlich für die tips sorry das ich den treat übersehn habe aber mit stromsteuerung bringe ich net druckerport in verbindung

--

millirem und bequerel , kleine kinder sterben schnell

Arsch für alles bei War in Europe
www.warineuropemod.com

zum Seitenanfang zum Seitenende Profil || Suche
005
02.03.2002, 20:09
feigling



Retro, kennst du eigentlich ne Möglichkeit, mehr als 8 Lämpen in Betrieb zu nehmen ?
Also, dass man die anderen Druckerportanschlüsse auch anschließen kann ?
Das würde mich mal interessieren.
irgendwie muss es ja gehen, aber ob man die dann für sowas nutzen kann :?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
02.03.2002, 20:16
Retro



Na klar... du kannst genau 255 Ausgänge steuern! :) 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255! :P

Das was du an den LEDs rauskommt ist ja ganz normaler BCD-Code, mit passenden Bausteinen kannste den ganz einfach verarbeiten (z.B. BCD -> Dez). Das einfachste so etwas zu realisieren währe besagter BCD->Dezimal Chip... allerdings hat der nur 4 Eingänge für BCD und imho nur 10 Ausgänge.

Das bessere währe ein EPROM, da hast du im Standartfall 16 Ausgänge... Wenn du mehr (vielleicht sogar alle 255? :P) brauchst, musst du das logisch verknüpfen und zum Schluss mit mehrenen EPROMs umsetzen.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 02.03.2002 um 20:17 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
02.03.2002, 20:24
Tron



oemh? bcd? meinst du Binary Coded Digit? warum willst du bcd verwenden? dann hast du ja 'nur' 100 zustaende statt den vollen 256 die 8 datenleitungen bieten.
was verstehst du unter BCD -> dez?

iirc hat der lpt-port ja noch 5 steuerleitungen, die i/o sind, die koennte man auch noch als reine ausgaenge missbrauchen.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
008
02.03.2002, 20:39
Retro



Hmm, verwechsle ich jetzt was mit BCD? Gehen wir mal von 4 Leitungen aus:

0 = 0000
1 = 1000
2 = 0100
3 = 1100
4 = 0010
5 = 1010
6 = 0110
7 = 1110
8 = 0001
9 = 1001
A = 0101
B = 1101
C = 0011
D = 1011
E = 0111
F = 1111

BCD-Hexadezimal... oder nicht?! Und wenn man mehr als 4 Leitungen zur verfügung hat, wie beim LPT1, geht die Reihe steil nach oben weiter...

Naja, BCD->Dezimal. damit meinte ich nen TTL Baustein mitdem man den BCD-Code in zehn Leitungen (1/0) zerlegen kann, nummer kenn ich nicht aus dem Kopf! ;)

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
009
02.03.2002, 21:11
Tron



bei ungepacktem bcd wird eine einzelne dezimale ziffer als ein byte codiert (also nur 0 - 9 oder 0000 bis 1001)
bei gepacktem bcd wird je eine dezimale ziffer in den oberen und unteren 4 bit gespeichert

selbst gepacktes bcd ist bloedsinnig, da dann immer noch 156 zustaende floeten gehen, ich bin fuer ganz normale binaere zahlen.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
010
02.03.2002, 21:35
Gott



schau auf das bild unter meinem ersten post da siehste dann

--

millirem und bequerel , kleine kinder sterben schnell

Arsch für alles bei War in Europe
www.warineuropemod.com

zum Seitenanfang zum Seitenende Profil || Suche
011
02.03.2002, 22:26
feigling



Ja, klar, mit entsprechenden Bausteinen, aber ich meine, dass man auch die anderen Druckerports ansprechen kann, also die, die auch deinem Schaltplan ungenutzt sind.

--

zum Seitenanfang zum Seitenende Profil || Suche
012
02.03.2002, 22:33
Retro



Garnicht... auf jedenfall nicht so einfach!

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
013
02.03.2002, 22:42
feigling



ok, dass wollte ich nur wissen =)
habs mir auch schon gedacht, aber fragen kostet ja nix :)

--

zum Seitenanfang zum Seitenende Profil || Suche
014
02.03.2002, 22:43
Retro



Hehe eben...

Aber ich kann auchnochmal in die Masse fragen:
- Wie ist es möglich den Status der Eingänge auszulesen?

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
015
02.03.2002, 23:10
Tron



Zitat:
Retro postete
- Wie ist es möglich den Status der Eingänge auszulesen?

jo (:
wie bereits bekannt sind hinter dem port 0x378 die 8 datenbits des parallelport (write only)

hinter dem port 0x379 sind die 5 eingaenge, bits 3 - 7, read only
bit 3: pin 15, -ERROR (0 == fehler)
bit 4: pin 13, SLCT (1 == drucker online)
bit 5: pin 12, PE (1 == Paper Error - kein papier mehr)
bit 6: pin 10, -ACK (0 == ACKnowledgement - drucker bereit fuer naechstes zeichen)
bit 7: pin 11, -BUSY (0 == drucker beschaeftigt)

die 5 io-leitungen des druckers sind auf port 0x37a, bits 0 - 4, read/write
bit 0: pin 1, -STROBE (0 == daten auf 0x378)
bit 1: pin 14, AUTO FEED (1 == automatisches LF nach CR)
bit 2: pin 16, -INIT (0 == drucker resetten)
bit 3: pin 17, SLCT IN (1 == drucker online schalten)
bit 4: pin ?, IRQ Enable ( 1 == interrupt ausloesen, wenn -ACK == 0)

alle bits mit - sind invertiert, also spannung an pin -> bit == 0, keine spannung an pin -> bit == 1

diese infos hab ich aus PC INTERN 4, ich hoffe das bringt dich weiter retro.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
016
03.03.2002, 00:23
Retro



Jep, Bit 3-7 sind genau die, die ich gesucht habe! Großes Danke.

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
017
03.03.2002, 12:57
feigling



Nur, wie fragt man das dann im Programm ab ?
Das würde mich interessieren. Hat jemand Vorschläge ? :D

--

zum Seitenanfang zum Seitenende Profil || Suche
018
03.03.2002, 12:58
Tron



Zitat:
feigling postete
Nur, wie fragt man das dann im Programm ab ?
Das würde mich interessieren. Hat jemand Vorschläge ? :D

was abfragen?

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
019
03.03.2002, 15:41
feigling



Also, wenn man z.B. einen Schalter dann an die Inputleitungen vom Druckerport anschließt (sollte laut Infolehrer gehen) muss man das ja auch irgendwie im programm abfragen können, ob der Schalter gedrückt wurde.
Und das ist meine Frage, ob jemand weiß, wie man das dann im Programm selber abfragen kann.

--

zum Seitenanfang zum Seitenende Profil || Suche
020
03.03.2002, 17:03
Tron



oh mann... heute sind echt nur leuchten unterwegs
wie waere es mit dem port auslesen?!

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
021
03.03.2002, 18:33
Retro



*kssst* wir haben hier nen Thread wo exakt beschrieben steht wie man den Druckerport ansteuert... währe das nichts für die Lernsources? ;)

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
022
03.03.2002, 19:03
feigling



Zitat:
Tron postete
oh mann... heute sind echt nur leuchten unterwegs
wie waere es mit dem port auslesen?!

Jaja, du mich auch.
Das ist mir auch klar, dass man den Port auslesen muss.
Wie ?
Du musst doch einen Code schreiben, mit dem du den auslesen musst.
Und den Code will ich wissen.
Den Code zum Ausgeben habe ich ja
Quellcode:
procedure OutPort(PortAddr: Word; Databyte: Byte); assembler; stdcall;
asm
mov al, Databyte
mov dx, PortAddr
out dx, al
end;

procedure TForm1.BtnSendClick(Sender: TObject);
begin
OutPort($378, StrToInt(EditByte.Text));
end;

aber wie muss man es ändern, damit man Daten einlesen kann ?

--


Dieser Beitrag wurde am 03.03.2002 um 19:05 von feigling bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
023
03.03.2002, 22:09
Retro



Achso.. hier was ja noch ne Frage! ;)

Quellcode:[b]function[/b] InPort(PortAddr: Word): Byte; [b]assembler[/b]; [b]stdcall[/b];
[b]begin[/b]
  [b]asm[/b]
    mov dx, PortAddr [color="blue"]//$379[/color]
    in al, dx
    mov Result, al
  [b]end[/b];
[b]end[/b];
Isses denn so schwer... ;)

Naja, es gibt 126 (ohne etwas angeschlossen zu haben), nach kurzer überlegung könnte das hinkommen!

Bitte nicht schlagen wenns falsch ist Tron, bin noch nich "so.." der ASM Profi..

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */


Dieser Beitrag wurde am 03.03.2002 um 22:10 von Retro bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche