AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lauflicht mit 8LED's

Ein Thema von fneuweiler · begonnen am 9. Sep 2005 · letzter Beitrag vom 1. Mai 2006
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#21

Re: Lauflicht mit 8LED's

  Alt 30. Sep 2005, 19:17
Zitat von Assun:
...doch wie kann ich genau diese auch wieder ausschalten ?

In dem Du out32(888,0) machst?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#22

Re: Lauflicht mit 8LED's

  Alt 1. Okt 2005, 15:03
Neee eben nicht wenn ich das mache dann werden ALLE LEDs ausgeschaltet..aber wie erreiche ich dass nur EINE bestimmte LED ausgeht ?

THX Schonmal
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#23

Re: Lauflicht mit 8LED's

  Alt 1. Okt 2005, 15:32
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: ?

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] Das ist grosser Quark was hier steht ! [/Edit]
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#24

Re: Lauflicht mit 8LED's

  Alt 1. Okt 2005, 17:37
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....)

hibbert
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#25

Re: Lauflicht mit 8LED's

  Alt 1. Okt 2005, 23:48
Nach dem Vorschlag von hibbert so:
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...
Miniaturansicht angehängter Grafiken
image1_246.png  
Angehängte Dateien
Dateityp: zip project1.exe_180.zip (233,4 KB, 50x aufgerufen)
Dateityp: zip project1.source_836.zip (16,0 KB, 93x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#26

Re: Lauflicht mit 8LED's

  Alt 2. Okt 2005, 09:10
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;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Clane
(Gast)

n/a Beiträge
 
#27

Re: Lauflicht mit 8LED's

  Alt 5. Nov 2005, 11:17
wie kann ich die funktionen aus der dll angucken ??
  Mit Zitat antworten Zitat
Benutzerbild von zebrafalke
zebrafalke

Registriert seit: 25. Feb 2006
155 Beiträge
 
Turbo Delphi für Win32
 
#28

Re: Lauflicht mit 8LED's

  Alt 28. Feb 2006, 17:57
Wenn ich bei mir den Code von TurboPASCAL compilieren will, bleibt er stehn und zeigt den Code des Projects an und compiliert es nicht!
Genau das gleiche passiert, wenn ich das in ein eigenes Programm schreibe!

*nixkapier* Was mache ich denn falsch?


zebrafalke
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#29

Re: Lauflicht mit 8LED's

  Alt 28. Feb 2006, 18:06
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 ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von zebrafalke
zebrafalke

Registriert seit: 25. Feb 2006
155 Beiträge
 
Turbo Delphi für Win32
 
#30

Re: Lauflicht mit 8LED's

  Alt 28. Feb 2006, 21:17
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?

Im Anhang ein Screenshot davon.

zebrafalke
Miniaturansicht angehängter Grafiken
fehler_304.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 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