Autor Beitrag
Stino
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Sa 29.03.03 17:37 
Hallo,

ich hab mich jetzt zwar schon ausgiebig mit diesen Thema beschäftigt, aber nirgendwo ein präzises oder etwas genaueres Tutorial gefunden.

Hat jemand von euch Erfahrung damit?
Ich möchte die Datenleitungen nur in schreibrichtung auf low oder high schalten. wie kann ich das realisieren? Gegen Assemblerteile im Programm hätte ich auch nichts... ;-)

Vielen Dank, mich interessiert auch eure Meinung dazu!

Stino
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Sa 29.03.03 21:48 
Titel: Wie's am Parallelport geht
Hallo Stino,

das geht recht einfach, sofern Du nicht NT,2000 oder XP verwendest.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);
begin
  asm
    mov dx,378h  // LPT1 auf 378H
    mov al,0     // Ausgabewert 0...255
    out dx,al
  end;
end;

Servus,

Adrian
Stino Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 30.03.03 01:17 
Hallo,

Das ganze wird unter Win98 bzw. ME laufen.
Was ich nur noch nicht ganz verstehe, ist der Ausgabewert.
Der Parallelport hat 25 Pins, wovon nur Pin 2-9 Datenleitungen (D0-D7) zum ansprechen sind. mit welchen Wert setzt man die verschiedenen Datenleitungen low oder high?

Vielen Dank,

Stino
Stino Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 30.03.03 01:17 
Hallo,

Das ganze wird unter Win98 bzw. ME laufen.
Was ich nur noch nicht ganz verstehe, ist der Ausgabewert.
Der Parallelport hat 25 Pins, wovon nur Pin 2-9 Datenleitungen (D0-D7) zum ansprechen sind. mit welchen Wert setzt man die verschiedenen Datenleitungen low oder high?

Vielen Dank,

Stino
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: So 30.03.03 11:14 
Titel: Datenleitung setzen
Hallo Stino,

geht ganz einfach:
D0 setzt man mit 1,
D1 mit 2,
D2 mit 4,
usw
D7 mit 128.
Will man mehrere setzen, muß man die einzelnen Werte addieren.

Gruß,

Adrian
Stino Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 30.03.03 13:15 
Titel: high oder low?
Danke,

ich werd' mich denn mal gleich ran setzten!

MFG Stino
Stino Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: So 30.03.03 19:50 
Hab ich jetzt versucht. Funktioniert soweit einwandfrei. Mein Problem ist allerding noch, dass ich nicht mehrere Leitungen gleichzeitig setzten kann.
D.h., wenn ich eine Leitung ändern will, werden die anderen alle auf low gesetzt.
Für die Steuerung muss ich allerdings mehrere gleichzeitig schalten bzw. auf high setzten.

Lässt sich das irgendwie umsetzen?

Danke, Stino
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: So 30.03.03 22:21 
Titel: Mehrere Bits setzen
Hallo,

auch das ist recht einfach.
Beispiel: Gesetzt wurde D2 mit 4. Jetzt soll auch noch D0 gesetzt werden, deshalb mußt Du halt 5 ausgeben. Wichtig ist lediglich, daß Du noch weißt, was Du zuletzt ausgegeben hast. Aber das dürfte kein Problem sein, wenn Du zuerst mal alle Leitungen auf 0 gesetzt hast.

Gruß,

Adrian
Stino Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mo 31.03.03 17:43 
Alles klar, so, wie ich die Leitungen schalten will, sende ich ein byte an den Port! 00011010 entspricht denn also D1=high, D3=high, D4=high, der Rest ist auf low.

Hab mein Proggi schon fertig, wollte 7-Segment LED-Anzeige ansteuern.
klappt einwandfrei!

Danke, Stino