![]() |
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 |
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. |
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.
|
Re: Lauflicht mit 8LED's
|
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 |
Re: Lauflicht mit 8LED's
Hast du dir
![]() |
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 |
Re: Lauflicht mit 8LED's
Ist die nicht gefundene Datei denn vorhanden?
Vielleicht musst du nur den angegebenen Pfad ändern? |
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 |
Re: Lauflicht mit 8LED's
[OT]Es gibt da einen netten IC der sich
![]() 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 |
Re: Lauflicht mit 8LED's
:-D Ja, oder so rum - klar.
|
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 :(
|
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 |
Re: Lauflicht mit 8LED's
Liste der Anhänge anzeigen (Anzahl: 1)
Des ist klar weil dir diese datei fehlt:
|
Re: Lauflicht mit 8LED's
es kommt trotzdem noch
Zitat:
|
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 |
Re: Lauflicht mit 8LED's
Zitat:
ich habe mal die seit neuem existierende Suchfunktion der DP verwendet und bin dabei zum Beispiel auf diesen ![]() |
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 |
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:
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...
//////////////////// 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; 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: |
Re: Lauflicht mit 8LED's
also ich bringe mit
Delphi-Quellcode:
und
// 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';
Delphi-Quellcode:
zum beispiel die erste LED zum leuchten....doch wie kann ich genau diese auch wieder ausschalten ? :gruebel:
out32(888,1);
|
Re: Lauflicht mit 8LED's
Zitat:
In dem Du out32(888,0) machst? |
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 |
Re: Lauflicht mit 8LED's
Delphi-Quellcode:
oder war das so: ? :gruebel:
// zB. PinNummer = 64
Out32(888, PinNummer and 1); // für das einschalten //bzw. Out32(888, PinNummer and 255); // für das ausschalten
Delphi-Quellcode:
[Edit=turboPASCAL] :P Das ist grosser Quark was hier steht ! :mrgreen: [/Edit]
// zB. PinNummer = 64
Out32(888, PinNummer {and 0}); // für das einschalten //bzw. Out32(888, PinNummer and 254); // für das ausschalten |
Re: Lauflicht mit 8LED's
also ich mache das so:
Delphi-Quellcode:
(Der Source ist ungetestet aus'm Kopf aufgeschrieben....:wink:)
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; hibbert |
Re: Lauflicht mit 8LED's
Liste der Anhänge anzeigen (Anzahl: 3)
Nach dem Vorschlag von hibbert so: :wink:
Delphi-Quellcode:
Es geht aber doch viel einfacher:
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);
Delphi-Quellcode:
oder einfach so:
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
Delphi-Quellcode:
Out32($378, $00000001); // Setzt die LED 1
... Out32($378, $10000001); // Setzt die LED 1 & 8 Bitte mal Testen... |
Re: Lauflicht mit 8LED's
Hai,
da es Sonntagmorgen ist und ich gerade Lust hatte hier noch mein Lösungsansatz:
Delphi-Quellcode:
Dabei werden die LEDs von rechts nach links gezählt (0 bis 7).
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; 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; |
Re: Lauflicht mit 8LED's
wie kann ich die funktionen aus der dll angucken ??
|
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 |
Re: Lauflicht mit 8LED's
Zitat:
Welche Delphiversion und welche Windowsversion hast du ? |
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 |
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. |
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? |
Re: Lauflicht mit 8LED's
|
Re: Lauflicht mit 8LED's
genau so etwas!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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 by Thomas Breitkreuz