Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Lauflicht mit 8LED's (https://www.delphipraxis.net/53047-lauflicht-mit-8leds.html)

fneuweiler 9. Sep 2005 07:09


Lauflicht mit 8LED's
 
Kann mir jemand sagen wie ich die einzelnen Ports anspreche also D0-D7 das mit Windows XP ist kein Prob hab noch ein tools auf meiner platte rumflacken damit geht es auch unter XP habs mal mit Basic getestet. Also ich hoffe ihr könnt mir helfen. Ich habe auch schon die anderen Beiträge gelsen aber ich schnall das nicht!!

mfg fneuweiler

Sharky 9. Sep 2005 07:26

Re: Lauflicht mit 8LED's
 
Hai fneuweiler,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS".

Ich muss die leider sagen das ich deinen ersten Satz überhaupt nicht verstehe ;-) Ich glaube Du meinst mit D0-D7 die Datenleitungen der Parallelschnittstelle. Aber der Rest des Satzes ist für mich ein Buch mit sieben Siegeln.

fneuweiler 9. Sep 2005 07:30

Re: Lauflicht mit 8LED's
 
also ich hab ein Lauflich mit 8 LED's D0 - D7 nun will ich programmieren das die LED's nacheinander blinken mit einem kurzen Zeitabstand dazwischen.

Tonic1024 9. Sep 2005 07:41

Re: Lauflicht mit 8LED's
 
Hi...

Sharky hat recht. Versuch mal Satzzeichen zu verwenden, vielleicht versteht man dich dann besser...

Hast du schon Dies und Das gelesen. Da sollte schon viel draus zu lesen sein.

Toni

fneuweiler 9. Sep 2005 08:24

Re: Lauflicht mit 8LED's
 
JO die kenn ich schon ich schnalles trotzdem nicht wies gehen soll! kannst du mir das erklären wie ich das in mein script einbinde???

fneuweiler

Matze 9. Sep 2005 08:27

Re: Lauflicht mit 8LED's
 
Hast du dir den Anhang auch angesehen?

fneuweiler 9. Sep 2005 09:02

Re: Lauflicht mit 8LED's
 
Da kommt immer [Fataler Fehler] Datei nicht gefunden: 'c:\programme\borland\delphi7\Projects\Bpl\ParaPrc s.pas'
Ich hab Delphi 7 und Windows Xp ich glaubt es liegt an der Delphi Vers so wie ich gelesen habe!!

mfg fneuweiler

Kara 9. Sep 2005 09:50

Re: Lauflicht mit 8LED's
 
Ist die nicht gefundene Datei denn vorhanden?
Vielleicht musst du nur den angegebenen Pfad ändern?

Tonic1024 9. Sep 2005 10:07

Re: Lauflicht mit 8LED's
 
wo hast du denn die Datei ParaPrcs.pas hinkopiert? Prüf doch mal ob es die Datei an der angegebenen Stelle überhaupt gibt...

Toni

gsh 9. Sep 2005 10:53

Re: Lauflicht mit 8LED's
 
[OT]Es gibt da einen netten IC der sich Bei Google suchen4017 nennt der kann ein 10 Led Lauflicht ansteuern (mit verkoppelung sogar theoretisch unendlich).[/OT]

Du musst die Datei ParaPrcs.pas und ddkint.dcu (ich weiss nicht mehr genau wie sie heisst) in deinen Delphi Bin Ordner kopieren: c:\programme\borland\delphi7\bin
Dann müsste es zum compillieren gehen

Kara 9. Sep 2005 11:29

Re: Lauflicht mit 8LED's
 
:-D Ja, oder so rum - klar.

fneuweiler 9. Sep 2005 13:40

Re: Lauflicht mit 8LED's
 
Ich glaub die Datei ist gar nicht dabei nur die paraprcs.exe und der rest halt aber net die datei wo er will :(

Assun 9. Sep 2005 14:25

Re: Lauflicht mit 8LED's
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi !

Ich habe auch etwas ähnliches vor, bekomme aber das Programm mit den Dateien ParaPrcs.dcu und paraUnit.pas einfach nicht zum laufen :(

ich habe hier mal mein Projekt angehängt.

Sobald ich diese Dateien in die Uses Liste kloppe, kommt immer "kann nicht kompliliert werden".

Fänds cool wenn ihr euch das mal anschauen könntet.

Vielen Dank im Voraus,

Gruß Assun

gsh 9. Sep 2005 15:15

Re: Lauflicht mit 8LED's
 
Liste der Anhänge anzeigen (Anzahl: 1)
Des ist klar weil dir diese datei fehlt:

Assun 9. Sep 2005 15:17

Re: Lauflicht mit 8LED's
 
es kommt trotzdem noch

Zitat:

[Fataler Fehler] Unit1.pas(7): F2063 Verwendete Unit 'ParaPrcs.pas' kann nicht compiliert werden
:(

Assun 30. Sep 2005 14:07

Re: Lauflicht mit 8LED's
 
Liste der Anhänge anzeigen (Anzahl: 1)
sry wenn ich das Thema nochmals aufwärme...

aber :

Ich habe hier ein Programm, welches wohl in VB.NET geschrieben wurde und die inpout32.dll benutzt (wurde angehängt).

Dieses Programm nutze ich zur Steuerung der einzelnen LEDs (Datenpins D1-D8 ).

Funtzt auch alles wunderbar.

Nur will ich sowas natürlich jetzt selber machen ;-)

Meine Frage nun : Weiss jemand wie ich die inpout32.dll in mein Programm erstmal einbinden kann und vor allem wie man die dll benutzt, so dass ich quasi per Knopfdruck einzelne Pins an und ausschalten kann ???

Also Hardware mäßig hat n Kolleg das soweit schon gemacht jetzt fehlt "nur" noch die passende Software ;-)

Bin für jede Hilfe dankbar.

Gruß Assun

Sharky 30. Sep 2005 14:49

Re: Lauflicht mit 8LED's
 
Zitat:

Zitat von Assun
....Meine Frage nun : Weiss jemand wie ich die inpout32.dll in mein Programm erstmal einbinden kann und vor allem wie man die dll benutzt, ...

Hai Assun,

ich habe mal die seit neuem existierende Suchfunktion der DP verwendet und bin dabei zum Beispiel auf diesen Beitrag gestossen ;-)

hibbert 30. Sep 2005 15:01

Re: Lauflicht mit 8LED's
 
Hi,
also ich kann für das Lauflicht nur die io.dll empfehlen, damit steuer ich auch meine Lichtanlage und ich bin damit sehr gut bedient...

hibbert

Assun 30. Sep 2005 15:30

Re: Lauflicht mit 8LED's
 
OMG es geht !!!

Ihr wisst gar nicht wie mich das freut :-)

soo, jetzt habe ich auch schon die erste Frage ;-)

wenn ich folgendes mache :

Delphi-Quellcode:
//////////////////// LED Night Rider /////////////////////////////
Anzahl := StrToInt(Edit1.Text);
for i:=1 to Anzahl do
begin
out32(888,1);
sleep(255);
out32(888,2);
sleep(255);
out32(888,4);
sleep(255);
out32(888,8);
sleep(255);
out32(888,16);
sleep(255);
out32(888,32);
sleep(255);
out32(888,64);
sleep(255);
out32(888,128);

out32(888,128);
sleep(255);
out32(888,64);
sleep(255);
out32(888,32);
sleep(255);
out32(888,16);
sleep(255);
out32(888,8);
sleep(255);
out32(888,4);
sleep(255);
out32(888,2);
sleep(255);
out32(888,1);
end
end;
dann wird dieser "Knight Rider" effekt (;-)) zwar so oft wiederholt wie angegeben aber mein Programm ist für diese Zeit blockiert wegen den vielen Sleeps :( die Sleeps sind aber notwendig, da das Lauflicht sonst nicht klappt...

Gibt es ne alternative für sleep bei der das Programm noch ansprechbar ist ??


EIDT : Sorry, habs über die Suche gefunden...nix für ungut ;-)

stichwort Delay :oops:

Assun 30. Sep 2005 18:10

Re: Lauflicht mit 8LED's
 
also ich bringe mit

Delphi-Quellcode:
// inpout32.dll für LPT-Ausgang unter WinNT, Win2000 und WinXP laden
procedure Out32(PortAddress:word;Value:byte);stdcall;export;
external 'inpout32.DLL';
function Inp32(PortAddress:word):byte;stdcall;export;
external 'inpout32.DLL';
und

Delphi-Quellcode:
out32(888,1);
zum beispiel die erste LED zum leuchten....doch wie kann ich genau diese auch wieder ausschalten ? :gruebel:

Sharky 30. Sep 2005 18:17

Re: Lauflicht mit 8LED's
 
Zitat:

Zitat von Assun
...doch wie kann ich genau diese auch wieder ausschalten ? :gruebel:

:gruebel:
In dem Du out32(888,0) machst?

Assun 1. Okt 2005 14:03

Re: Lauflicht mit 8LED's
 
Neee eben nicht :( wenn ich das mache dann werden ALLE LEDs ausgeschaltet..aber wie erreiche ich dass nur EINE bestimmte LED ausgeht ?

THX Schonmal

turboPASCAL 1. Okt 2005 14:32

Re: Lauflicht mit 8LED's
 
Delphi-Quellcode:
// zB. PinNummer = 64 

Out32(888, PinNummer and 1);  // für das einschalten

//bzw.
Out32(888, PinNummer and 255); // für das ausschalten
oder war das so: ? :gruebel:

Delphi-Quellcode:
// zB. PinNummer = 64 

Out32(888, PinNummer {and 0});  // für das einschalten

//bzw.
Out32(888, PinNummer and 254); // für das ausschalten
[Edit=turboPASCAL] :P Das ist grosser Quark was hier steht ! :mrgreen: [/Edit]

hibbert 1. Okt 2005 16:37

Re: Lauflicht mit 8LED's
 
also ich mache das so:
Delphi-Quellcode:
procedure leuchten(led1,led2,led3,led4,led5,led6,led7,led8:boolean);
var x:integer;
begin
x:=0;

// soll LED 1 leuchten ?
if led1 = true then x:= x +1;
// soll LED 2 leuchten ?
if led2 = true then x:=x+2;
// soll LED 3 leuchten ?
if led3 = true then x:= x +4;
{...}


Out32(888,x);
end;
(Der Source ist ungetestet aus'm Kopf aufgeschrieben....:wink:)

hibbert

turboPASCAL 1. Okt 2005 22:48

Re: Lauflicht mit 8LED's
 
Liste der Anhänge anzeigen (Anzahl: 3)
Nach dem Vorschlag von hibbert so: :wink:
Delphi-Quellcode:
const
  LPT_Port = $378; // LPT Port 1 (dezimal 888)

procedure LEDs(led1,led2,led3,led4,led5,led6,led7,led8: Boolean);
var
  Value: Byte;
begin
  Value := 0;

  if led1 then Value := Value +   1;
  if led2 then Value := Value +   2;
  if led3 then Value := Value +   4;
  if led4 then Value := Value +   8;
  if led5 then Value := Value +  16;
  if led6 then Value := Value +  32;
  if led7 then Value := Value +  64;
  if led8 then Value := Value + 128;

  Out32(LPT_Port, Value);
end;

// Aufruf zB so:
LEDs(True, False, False, False, False, False, False, False);
Es geht aber doch viel einfacher:

Delphi-Quellcode:
const
  LPT_Port = $378; // LPT Port 1 (dezimal 888)

procedure SetLEDs(Value: Byte);
begin
  Out32(LPT_Port, Value);
end;

// Aufruf:

SetLEDs($00000001); // Setzt die LED 1
SetLEDs($00000011); // Setzt die LED 1 & 2
SetLEDs($10000001); // Setzt die LED 1 & 8
SetLEDs($00000000); // alles aus
oder einfach so:
Delphi-Quellcode:
Out32($378, $00000001); // Setzt die LED 1
...
Out32($378, $10000001); // Setzt die LED 1 & 8

Bitte mal Testen...

Sharky 2. Okt 2005 08:10

Re: Lauflicht mit 8LED's
 
Hai,

da es Sonntagmorgen ist und ich gerade Lust hatte hier noch mein Lösungsansatz:
Delphi-Quellcode:
const
  LPT_Port = $378;
var
  LEDStatus: byte;

procedure PruefeLED (aNumber : Byte);
begin
  if (aNumber > 7) then
  begin
    raise exception.create('LED Nummer ist größer als das Maximum');
  end;
end;

procedure SetzePort;
begin
  Out32(LPT_Port, LEDStatus);
end;

procedure LEDEin(aNumber: byte);
begin
  PruefeLED(aNumber);
  LEDStatus := LEDStatus or (1 shl (aNumber));
  SetzePort;
end;

procedure LEDAus(aNumber: byte);
begin
  PruefeLED(aNumber);
  LEDStatus := LEDStatus and (not (1 shl aNumber));
  SetzePort;
end;

procedure InvertLED(aNumber : byte);
begin
  PruefeLED(aNumber);
  LEDStatus := LEDSTatus xor (1 shl aNumber);
  SetzePort;
end;

procedure AlleLEDEin(aStatus: boolean = True);
begin
  if (aStatus) then
  begin
    LEDStatus := $FF
  end
  else
  begin
    LEDStatus := $0
  end;
  SetzePort;
end;

procedure SchiebeLEDLinks;
begin
  LEDStatus := LEDSTatus SHL 1;
  SetzePort;
end;

procedure SchiebeLEDRechts;
begin
  LEDStatus := LEDSTatus SHR 1;
  SetzePort;
end;
Dabei werden die LEDs von rechts nach links gezählt (0 bis 7).
Aufrufen dann so:
Delphi-Quellcode:
procedure TForm1.btn_SetLEDClick(Sender: TObject);
begin
  LEDEin(0);
  LEDEin(5);
  LEDEin(7);
end;

procedure TForm1.btn_LEDAusClick(Sender: TObject);
begin
  LEDAus(0);
  LEDAus(5);
  LEDAus(7);
end;

procedure TForm1.btn_InvertClick(Sender: TObject);
begin
  InvertLED (5);
end;

procedure TForm1.btn_SchiebenClick(Sender: TObject);
begin
  SchiebeLEDLinks;
end;

procedure TForm1.btn_rechtsClick(Sender: TObject);
begin
  SchiebeLEDRechts;
end;

Clane 5. Nov 2005 10:17

Re: Lauflicht mit 8LED's
 
wie kann ich die funktionen aus der dll angucken ??

zebrafalke 28. Feb 2006 16:57

Re: Lauflicht mit 8LED's
 
Wenn ich bei mir den Code von TurboPASCAL compilieren will, bleibt er stehn und zeigt den Code des Projects an und compiliert es nicht! :wall:
Genau das gleiche passiert, wenn ich das in ein eigenes Programm schreibe! :wall: :wall:

*nixkapier* Was mache ich denn falsch?


zebrafalke

turboPASCAL 28. Feb 2006 17:06

Re: Lauflicht mit 8LED's
 
Zitat:

Zitat von zebrafalke
Wenn ich bei mir den Code von TurboPASCAL compilieren will, bleibt er stehn und zeigt den Code des Projects an und compiliert es nicht!

Ja und wo (im Quellcode) was für eine Fehlermeldung.

Welche Delphiversion und welche Windowsversion hast du ?

zebrafalke 28. Feb 2006 20:17

Re: Lauflicht mit 8LED's
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich benutze Delphi 2005 und WinXP

Er zeigt den Quelltext von "Project1" an und markiert das "begin" rot und sagt: "E2156 Ausdruck zu komplex"

Was sagt mir das? :gruebel: :coder2:

Im Anhang ein Screenshot davon.

zebrafalke

turboPASCAL 28. Feb 2006 20:32

Re: Lauflicht mit 8LED's
 
Äh, üh... interessant. Kann ich nicht sagen was das ist.

Die Fehlermeldung "E2156 Ausdruck zu komplex" ist mir nicht bekannt. :gruebel:

Läuft bei mir unter D6 / D2005 ohne Probleme.

whiteshark 1. Mai 2006 17:01

Re: Lauflicht mit 8LED's
 
Moin!

Ich will auch so etwas machen! Ich habe schon ein Board zusammengebaut, aber es funktioniert nicht richtig! Kann mir jemand ein Schaltplan für die Pinbelegung geben, damit ich meinen Fehler finden kann?

turboPASCAL 1. Mai 2006 19:27

Re: Lauflicht mit 8LED's
 
So etwas ? http://www.delphipraxis.net/internal...=436124#436124

whiteshark 1. Mai 2006 20:08

Re: Lauflicht mit 8LED's
 
genau so etwas!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 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