Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Druckerport ansprechen... (https://www.delphipraxis.net/687-druckerport-ansprechen.html)

Daniel B 22. Aug 2002 20:47


Druckerport ansprechen...
 
und einzelne Ausgänge H/L setzen.

:hi: erstmal,

ich hab schon geGoogelt, aber nciht tolles gefunden.
Bis jetzt mache ich es so:

Code:
procedure TForm1.Rel1Click(Sender: TObject);
//Relais 1 EIN
var
  tf: TextFile;
begin
  AssignFile(tf, 'LPT1');
  ReWrite(tf);
  WriteLn(tf, Chr(27), 'd', Chr(0), Chr(255));
  CloseFile(tf);
end;
Das Problem ist, wenn ich nun auf den Button klicke, dann bleibt das Programm total hängen. Es gibt aber keine Fehelrmeldungen o.ä.
Ich kann nur noch Programm rücksetzen klicken. Run geht auch nciht mehr. Wenn ich die Zeile mit Write Kommentiere, dann kann ich halt ganz normal auf den Button klicken. Irgendwie blick ich da überhaupt nicht mehr durch. Vielleicht könnt ihr mir Helfen. Vielen Dank.

Grüsse, Daniel :mrgreen:

CalganX 23. Aug 2002 17:21

Ich bin mir nicht 100%-ig sicher, aber vielleicht könntest du in Writeln-Zeile was anderes schreiben, vielleicht liegt es einfach nur daran was du schreibst...

Chris

Daniel 23. Aug 2002 17:34

Um Ports direkt zu steuern, würde ich eine entsprechende Komponente nutzen. Oftmals ist dort der Quellcode ja auch dabei, so dass man sich ansehen kann, wie es funktioniert. Eine der möglichen Quellen wäre Torry.


Grüße,
Daniel

Daniel B 23. Aug 2002 17:56

Ich hbas mal mit WriteLn(tf, #0, #255); probiert. Also Kanal 1 auf H. Einfacher geht es nciht!!! Das Problem ist immernoch da. Die eine Zeile kann doch nciht so schwer sein. Das gibts nicht.

Ich werd mir mal ein paar Kompos anschauen. Das wollte ich halt vermeiden. Naja, mal sehen.

Grüsse, Daniel :mrgreen:

thomasdrewermann 23. Aug 2002 18:49

Hi,
ganz hardewaremässig kannst ´du es mit einem entsprechenden Assambler-Code machen.
Den füst du ein indem du

Code:
asm
//CODE
end;
schreibst.

MFG
Thomas

Daniel B 23. Aug 2002 18:52

Wie man Assembler einfügt ist mir schon klar. Aber ich kann kein ASM. Ich hab zwar ein Beispiel da, aber es sind über 50 Zeilen und erstens Blick ich da ´nicht durch und zweitens kann ich nicht rauslesen wie ein Port jetzt auf H oder L gezogen wird.
Trotzdem Danke.

Grüsse, Daniel :)

Christian Seehase 23. Aug 2002 19:39

Moin Daniel B,

wenn das Betriebssystemunabhängig funktionieren soll, wirst Du wohl eh' ohne Assembler auskommen, falls es Dich beruhigt. ;-)
Die Ports direkt damit anzusprechen, via IN/OUT wird nur unter 95/98, wahrscheinlich auch ME funktionieren. Bei NTff ist der direkte Zugriff auf die Hardware ja nicht möglich (falls Du keinen Treiber schreiben willst)
Und die entsprechenden API Befehle in Assembler zu verpacken dürfte sich wohl nur lohnen, wenn es um Geschwindigkeit geht.

Daniel B 23. Aug 2002 19:44

Hallo Christian,

BS-Unabhängig wäre ganz schön. Ich möchte einfach nur die 8 Ports auf H oder L ziehen. Mehr nicht. Für so eine Relaiskarte die ich selbst gebaut habe. Später soll es dann über die serielle laufen, mit Bus für mehrere Karte usw. Aber im mom. nur Paralellport. Sonst nichts. Hab nicht gedacht das es sooo Plöd wird. Naja.

Grüsse, Daniel :mrgreen:

Affje 2. Okt 2003 13:39

Re: Druckerport ansprechen...
 
hi

ich habe ein ähnliches prob, bloß will ich den druckerport nehmen.
es wäre gut, wie in basic:

out 888, 1...

weil ich habe ein lauflicht gebaut (mit 8 dioden) und möchte die zum leuchten bringen.

flomei 2. Okt 2003 14:33

Re: Druckerport ansprechen...
 
Guck mal in der Sparte "Tutorials und Kurse"... Dort findest du mindestens zwei Tutorials die dir helfen können. Auch hier in der DP mal nach
Hier im Forum suchenLPT Parallelport suchen.

MfG Florian :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz