![]() |
Die 8 Pins des Parallel Port ansprechen ?
Hi Delphianer,
ich suche eine einfache Lösung die ersten 8 Pins am Parallel-Port anzusprechen. Ich möchte mit meinen Programm zum Beispiel einen Signal an Pin 3 und Pin 5 senden. Damit wird eine Relais Karte angesteuert. Wenn es geht sollte es generell auf jeden OS laufen. Wüsste da einer wie dass funktioniert, da ich leider noch nie eine Hardware Steuerung programmiert habe. Danke schon mal für euer Mühe .. |
Das Problem hatte ich auch schon einmal.
Dafür gibt es Komponenten, hab die die ich damals verwendet hab leider nicht mehr gefunden, hab sie aber auf jeden fall von ![]() musst einfach mal dort suchen. Meld dich bei weiteren fragen cu |
Kommt mir bekannt vor das Thema.
![]() Da hab ich auch mehrere Dateien angehängt. Irgendwo ist das Prog mit sämtlichem Code... und weiter unten ist ne dll. Die musst du nach C:\Windows\System\ kopieren. Dann läuft das Prog eigentlich fehlerfrei unter 95, 98, 98SE und ME. Nicht unter 2000 und XP. (Du kannst meinen Code ruhig benutzen aber schick mir mal das Ergebnis, bitte!) In meinem Prog wird übrigens der erste Pin angesteuert. MfG Florian |
Unter Win2000 geht es nicht ? Ich gucks mir jetzt mal an ..
|
@Mad Mason: Ich habe leider nix passendes beim Torry gefunden ..
@flomei: Da das Code von Dir ist, könntest DU oder ein anderer mir mal diesen Bereich näher erklären ?
Code:
so wie Du gesagt hast wird nur Pin1 angesprochen ? dass heisst Port(1) ist an, Port(0) ist aus ?
procedure port(x:byte);
begin asm mov dx,378h mov al,x out dx,al end; end;
Code:
Was wäre wenn ich jetzt Pin 3 und 5 ansprechen möchte ?
procedure TSteuerung.rbtnleftClick(Sender: TObject); assembler;
begin port(1); end; procedure TSteuerung.rbtnrightClick(Sender: TObject); assembler; begin port(0); end; Nachtrag: Oder könnte sein dass bei port(5) dann Pin 1 und 3 angesprochen wird wenn man an das Dualsystem denkt ? |
Moin M.Knebel,
Port 378Hex ist der Standardport für die parallele Schnittstelle.
Delphi-Quellcode:
Zu Deinem Nachtrag:
mov dx,378h // Port laden
mov al,x // auszugebenden Werte laden out dx,al // Byte ausgeben Da ja ein Byte (also 8 Bit) auf dem Port ausgegeben werden, würde ich mal sagen ja, aber ohne Gewähr. Da mittels OUT eigentlich direkt die Hardware angesprochen wird, ist es recht unwahrscheinlich, dass eine Anwendung unter NT/W2K/XP diesen Befehl korrekt ausführen kann. Da sollte der Hardwarezugriff den Treibern vorbehalten sein. @Flomei: Zu Deiner Signatur kann ich nur sagen: yIDoghQo' ;-) |
Also mein Kollege hatte es mit seiner RTA1000 Relay Card getestet. Und konnte kein Signal bemerken. Eventuell ist dass so kurz dass es nicht sichtbar ist. Wollte nur noch ein kleiner Listing in Basic (habe es nicht) posten damit man sieht dass es normal simpel wäre ..
Code:
Nun gibt es bei Delphi sowas ähnliches wie ein LPRINT ?
10 INPUT "RTA1000 BOARD DATA";A
20 IF A>255 THEN END 30 LPRINT CHR$(A); 40 GOTO 10 |
So was:
Delphi-Quellcode:
uses
Printers; procedure TForm1.Button1Click(Sender: TObject); var F: TextFile; begin AssignPrn(F); Rewrite(F); Writeln(F, 'Hello paper.'); System.CloseFile(F); end; |
@Christian: Hatte mich zwar schon per PM bedankt, mache es aber an dieser Stelle nochmals ;)
@Luckie: Danke für den Code. Man kann wohl keine Steuerzeichen wie chr$(4) senden. Da der Chr Befehl in Delphi nur den Ascii Code zurückgibt dass in den Klammer steht. Suche aber trotzdem mal ob ich doch etwas in Torry finde .. |
Hai,
da die Frage ja immer wieder kommt habe ich mal bei Tante Google gesucht: Hier ist ein ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 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