![]() |
Parallelport unter XP ansteuern
Hallo
Ich bin noch jung programmiere aber sehr gerne in Delphi. :coder: Jetzt habe ich einen Roboter gebaut und würde in gerne (unter XP) mit Delphi über den Parallelport ansteuern. In der Programmiersprache QickBasic unter Dos habe ich es schon geschafft nur denke ich das Delphi sehrviel ausgearbeiteter ist. Nur weiß ich noch garnicht wie ich das anstellen soll :wall: . Kann mir jemand helfen? :roll: Gruß Landfloh |
Re: Parallelport unter XP ansteuern
Hallo Landfloh
Such mal nach ComPort |
Re: Parallelport unter XP ansteuern
Liste der Anhänge anzeigen (Anzahl: 1)
willkommen in der Delphi-Community!
also ich hatte mal ein kleines Programm geschrieben, um einige LED's zum blinken zu bringen! Dazu hatte ich damals eine fertige DLL verwendet: INPOUT32.DLL damit konnte mal daten senden und empfangen! mfg |
Re: Parallelport unter XP ansteuern
Danke Muss ich dann alles gleichzeitig starten?
Die Ausführung Projekt1.exe funktioniert. Aber wenn ich Unit1 lade dann kommt diese Fehlermeldung: [i][Fataler Fehler] Ausgabedatei 'C:\Dokumente und Einstellungen\Soz1L\Eigene Dateien\Delphi Programme aus Internet\LPT_Port\Project1.exe' kann nicht erstellt werden :wiejetzt: Danke aber für die schnellen Antworten! :angel: |
Re: Parallelport unter XP ansteuern
...vielleicht irgendwo ein schreibschutz drinnen?
aber die wichtigsten Dinge sind ja nachvollziehbar:
Delphi-Quellcode:
mfg
..
var .. BasAdr: Integer = $378; .. implementation {$R *.dfm} {Funktionen aus "inpout32.dll" laden:} procedure Out32 ( Addresse: Integer; Wert: byte ); stdcall; export; external 'INPOUT32.DLL'; function Inp32 ( Addresse: Integer ): Byte; stdcall; export; external 'INPOUT32.DLL'; .. function Init_LPT_Port: Boolean; begin try {Alle Bits im Daten-Register setzen:} Out32 ( BasAdr, 255 ); {alle Datenausgänge high} {Um die 4 Steuerausgänge zu setzen, müssen Bit0, Bit1, Bit3 gelöscht und Bit2 gesetzt werden. Außerdem wird Bit4 (Interrupt enable) gesetzt und Bit5 (bidirektional) gelöscht. Bit6, Bit7 sind ohne Bedeutung:} Out32 ( BasAdr+2, 20 ); {alle Steuerausgänge high} {Registerinhalte einlesen und anzeigen:} gelesen := Inp32(BasAdr); Form1.ListBox1.Items.Add ( 'Parallelport-Daten-Register' ); Form1.ListBox1.Items.Add ( IntToStr ( gelesen ) ); gelesen := Inp32(BasAdr+2); Form1.ListBox1.Items.Add ( 'Parallelport-Steuer-Register' ); Form1.ListBox1.Items.Add ( IntToStr ( gelesen ) ); result := true; except result := false; end; end; // <- Init_LPT_Port function Destroy_LPT_Port: Boolean; begin try {Alle Bits im Daten-Register löschen:} Out32(BasAdr, 0); {alle Datenausgänge low} {Um die 4 Steuerausgänge zu setzen, müssen Bit0, Bit1, Bit3 gelöscht und Bit2 gesetzt werden. Außerdem wird Bit4 (Interrupt enable) gesetzt und Bit5 (bidirektional) gelöscht. Bit6, Bit7 sind ohne Bedeutung:} Out32(BasAdr+2, 27); {alle Steuerausgänge low} {Registerinhalte einlesen und anzeigen:} gelesen := Inp32(BasAdr); Form1.ListBox1.Items.Add ( 'Parallelport-Daten-Register' ); Form1.ListBox1.Items.Add ( IntToStr(gelesen) ); gelesen := Inp32(BasAdr+2); Form1.ListBox1.Items.Add ( 'Parallelport-Steuer-Register' ); Form1.ListBox1.Items.Add ( IntToStr(gelesen) ); result := true; except result := false; end; end; // <- Destroy_LPT_Port .. procedure TForm1.Timer1Timer(Sender: TObject); begin Out32 ( BasAdr, 255 ); {alle Datenausgänge high} end; procedure TForm1.Timer2Timer(Sender: TObject); begin case blink of 0..130: begin if blink mod 2 = 1 then Out32 ( BasAdr, 255 ) else Out32 ( BasAdr, 0 ); Inc ( Blink ); end; 131: begin Out32 ( BasAdr, 255 ); Form1.Timer2.Enabled := false; Form1.Timer1.Enabled := true; end; end; end; .. procedure TForm1.FormDestroy(Sender: TObject); begin Out32(BasAdr, 0); {alle Datenausgänge low} Destroy_LPT_Port; end; |
Re: Parallelport unter XP ansteuern
Danke
Ich arbeite mich jetzt mal durch den Quelltext. Gruß Landfloh :xmas: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz