- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 24 von 24

Thema: Schrittmotoren ansteuern mit Delphi oder ähnlichem

  1. #21
    Benutzer Stammmitglied
    Registriert seit
    12.01.2005
    Alter
    44
    Beiträge
    44
    Anzeige

    Powerstation Test
    und "frank"

    es ist nicht einfach mit delphi den LPT Port anzusteuern wenn man nur ein wenig ahnung hat von delphi. bin schon länger am knobeln und suchen!

    MFG Tommy

  2. #22
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.11.2004
    Ort
    München
    Alter
    37
    Beiträge
    447
    Hi!
    Also ich hab schön öfters was mit Delphi gemacht, und wie man über die RS232 nen paar zeichen sendet habe ich bereits mit einer .pas Datei(die einfach in ein bestehendes Project eingefügt werden kann, wie oben gezeigt) beschrieben. Die einzelnen Pins des LPT anzusteuern ist dann schon etwas komplizierter, da ich unter WinXP arbeite. Unter Win98 gab es da einfach einen Delphi-asm code, mit dem man die Ports lesen und schreiben konnte. Ich habe mir für WinXP die io.dll(http://www.geekhideout.com/iodll.shtml) runtergeladen und steuere damit alles an, denn WinXP unterbindet alle Aufrufe, die direkt an die Ports gehen.
    @R5D5: lad dir die DLL runter. Wenn es unbedingt sein muss, verrate ich auch noch, wie man die dll benutzt ...
    MfG Alex

  3. #23
    Benutzer Stammmitglied
    Registriert seit
    12.01.2005
    Alter
    44
    Beiträge
    44
    hi

    "passtscho" währe gut wenn du es erklären könntest.!
    [-o<

    MFG Tommy

  4. #24
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.11.2004
    Ort
    München
    Alter
    37
    Beiträge
    447
    Das ganze ist eigentlich recht gut beschrieben auf der Internetseite - aber wenns denn unbedingt sein muss:


    // das muss oben irgendwo hin. am besten über "implememtation"

    procedure PortOut(Port : Word; Data : Byte); stdcall; external 'io.dll';
    procedure PortWordOut(Port : Word; Data : Word); stdcall; external 'io.dll';
    procedure PortDWordOut(Port : Word; Data : DWord); stdcall; external 'io.dll';
    function PortIn(Port : Word) : Byte; stdcall; external 'io.dll';
    function PortWordIn(Port : Word) : Word; stdcall; external 'io.dll';
    function PortDWordIn(Port : Word) : DWord; stdcall; external 'io.dll';
    procedure SetPortBit(Port : Word; Bit : Byte); stdcall; external 'io.dll';
    procedure ClrPortBit(Port : Word; Bit : Byte); stdcall; external 'io.dll';
    procedure NotPortBit(Port : Word; Bit : Byte); stdcall; external 'io.dll';
    function GetPortBit(Port : Word; Bit : Byte) : WordBool; stdcall; external 'io.dll';
    function RightPortShift(Port : Word; Val : WordBool) : WordBool; stdcall; external 'io.dll';
    function LeftPortShift(Port : Word; Val : WordBool) : WordBool; stdcall; external 'io.dll';
    function IsDriverInstalled : Boolean; stdcall; external 'io.dll';

    // bei Form.OnCreate oder sonstwo:
    if not IsDriverInstalled then
    begin
    Showmessage('io.dll konnte nicht geladen werden!');
    halt;
    end;

    // die kleine Hilfsfunktion sollte unter implementation sein

    Function MakeByte(bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7:b yte):byte;
    begin
    result:=bit0*1 or bit1*2 or bit2*4 or bit3*8 or bit4*16 or bit5*32 or bit6*64 or bit7*128;
    end;

    // damit macht man setzt man die einzelnen bits:
    // $0378 ist die Daten-Adresse vom LPT1 (im normalfall)

    PortOut($0378,MakeByte(1,0,1,0,1,0,1,0));

    //natürlich geht das auch mit SetPortBit oder ClrPortBit oder NotPortBit oder ...

    Ich hoffe jetzt ist das alles sonnenklar! ...

    MfG Alex

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress