Autor Beitrag
F.Art
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Di 22.03.05 21:25 
Ich habe mir eine Relaischaltung gebaut die mit 5V angesteuert werden kann.
Nun möchte ich das mit dem PC verbinden und eine Software entwickeln die diesen Pin 2 von LPT ansteuern kann.
Wie wird das bewerkstelligt?
jjturbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Di 22.03.05 21:29 
Hi,

such mal hier und/oder im Web nach io.dll. Damit schnackelts.

Gruß, jjturbo

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Di 22.03.05 21:51 
Leider schnackelt es bei mir noch nicht.
Ich habe nun die io.dll und möchte diese dann mit in meine Exe einbinden und ich könnte einen code gebrauchen der den Pin 2 anspricht.
jjturbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 516

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Di 22.03.05 22:04 
Die Port-Adresse muß dezimal angegeben werden, bei LPT1 normalerweise $378(dez.888), dann den Wert, den das Byte haben soll.

PortOut(888,1);//Setzt das erste Bit im ersten Datenbyte
PortOut(888,4);//Setzt das dritte Bit im ersten Datenbyte

PortOut(889,2);//Setzt das zweite Bit im zweiten Datenbyte

Die Belegung der Pins mußt Du der Doku entnehmen.

Gruß, jjturbo

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Di 22.03.05 22:45 
Ich habe versucht über Typenbibliothek die DLL in mein Projekt ein zu fügen.
Aber es kam eine Fehler meldung das 'Fehler beim Laden der Typenbibliothek/DLL.'.
Irgendwie muß ich die doch ansprechen.
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Mi 23.03.05 09:52 
Servus!

Also machen wir's ganz ausführlich:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
unit PinSetzen;
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin, ExtCtrls;

type
  TForm1 = class(TForm)
    procedure Senden(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  
implementation

{$R *.DFM}

procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';

procedure TForm1.Senden(Sender: TObject);
begin
  PortOut($378,1);
end;

//...

Pin2 des LPT entspricht dem niederwertigsten Datenbit, also D0, mit "PortOut($378,0)" kann man es wieder löschen. Wichtig ist auch noch, daß die io.dll im gleichen Verzeichnis steht, in dem sich auch die exe befindet.

Gruß,

Adrian

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Mi 23.03.05 10:12 
OK, soweit lässt der Code sich nun compelieren ohne fehlermeldung.
Gibt es nicht noch eine Möglichkeit die DLL in die Exe ein zu binden?
Oder bleibt nur die Möglichkeit, die DLL ind die Exe einzusmelzen und jedesmal wieder raus zu kopieren?
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Mi 23.03.05 11:00 
Servus!

Also ich persönlich kenne keine Methode, eine DLL mit einer exe zu "verschmelzen", das würde ja auch den Sinn der DLLs in puncto Modularität widersprechen. Das von mir dargestellte Beispiel verwendet den statischen Aufruf der DLL, was m.E. einfacher ist, als die dynamische Variante, aber das ändert nichts an der Tatsache, daß zum Funktionieren der Anwendung die DLL vorhanden sein muß.
Wenn man nur mit einer Datei, also ohne DLL, auskommen will, kann man entweder auf Win 9x/ME ausweichen und über ein paar Assemblerzeilen den LPT ansteuern (darüber gibts im Forum ein paar Beiträäge), oder man schreibt sich die Ansteuerung selber. Wie Letzteres geht überschreitet aber leider mein bisheriges Wissen.

Gruß,

Adrian
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Mi 23.03.05 22:15 
Ich persöhnlich code kleine Tools lieber so das sie kompackt eine EXE Datei sind.
Aber in diesem Fall werde ich die DLL mal mit der Exe einsmelzen und bei aufruf meiner Exe diese DLL rauskopieren lassen.
Aber es funktioniert mit dem LPT Pin 2 wunderbar, das ist mir das wichtigste.
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: So 27.03.05 18:30 
Jetzt hätte ich noch ne Frage, wie kann man den Pin 2 wieder deaktivieren?
MajorTwip
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 11.04.05 13:30 
mooien

hehe, das hat er weiter oben geschrieben, mit dem löschen

PortOut (888,0) oder so ähnlich.

sorry,bin VB und nicht Delphi programmer