AGB  ·  Datenschutz  ·  Impressum  







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

LPT - Mehrere Pins ansprechen!?

Ein Thema von flomei · begonnen am 6. Mai 2003 · letzter Beitrag vom 16. Mai 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#1

LPT - Mehrere Pins ansprechen!?

  Alt 6. Mai 2003, 15:18
Hallo! Jetzt schreib ich mal wieder ein Prog für die Schule. Dieses Programm soll eine "Flaschenabfüllanlage" steuern. Bevor mich jetzt jeder fragt, wie die aussieht und wie die was abfüllt bleiben wir bei Delphi. Bei meinem ersten Steuerprogramm habe ich nach langem Googlen (so bin ich auch hier hingekommen! ) ein paar Teile Assembler gefunden mit denen das unter Win9X und ME ohne Treiber funktioniert. Das nächste Programm soll auch wieder unter Win98 laufen muss aber mehrere Ports einlesen und ausgeben.
Ich hatte folgenden Code zum Ansteuern des Parallelports:
Delphi-Quellcode:
procedure port(x:byte);
begin
 asm
  mov dx,378h
  mov al,x
  out dx,al
 end;
end;
Geht auch. Wenn ich nun den ersten Datenpin auf High setzen will hab ich das so gemacht:
Delphi-Quellcode:
procedure TSteuerung.Pin1HighClick(Sender: TObject); assembler;
begin
  port(1); //setzt ersten Datenpin high
end;
Nun frage ich mich:
  • Wie steuere ich mehrere Pins an? Überlegung: Port(00000011); //oder anders???
  • Wie lese ich Pins ein? Überlegung: in dx,al //in statt out

Thx im Voraus.

MfG Florian

P.S.: Ich würde gerne nach Schluss des Projektes das Programm und ein paar Infos über die Anlage hochladen für alle Interessierten. Wenn ich darf!
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 6. Mai 2003, 16:08
Hallo,

schau mal hier, hier und hier.

War es denn so schwer nach LPT zu Suchen?

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von mika
mika

Registriert seit: 25. Okt 2002
176 Beiträge
 
Delphi 6 Professional
 
#3

port

  Alt 6. Mai 2003, 16:15
Hallo,

du liegst schon ganz richtig

Delphi-Quellcode:

Const
  PortNum = $378;

function PortIn( PortNum: word): byte;
Var a : byte;
Begin
  asm
    mov DX, PortNum;
    in AL, DX;
    mov a, AL;
  end; {asm}
  PortIn := a;
end;

procedure PortOut( PortNum: word; a: byte);
Begin
  asm
    mov DX, PortNum;
    mov AL, a;
    out DX, AL;
  end; {asm}
end;
damit kannst du auf dem port lesen und schreiben.

Mehrere pins setzt du indem du das byte erhöhst

Wert Pins
1 1
2 2
3 1 & 2
...

wenn ich nicht ganz falsch liege, ist schon länger her das ich sowas gemacht habe.
:: don't Panic ::
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#4
  Alt 6. Mai 2003, 16:25
Zitat von Daniel B:
War es denn so schwer nach LPT zu Suchen?
Was meinst du was ich zuerst gemacht habe. Ich hab da nirgendwo was von mehreren Pins gelesen. Wenn es nicht darum ginge würde ich keinen neuen Thread aufmachen.

Zitat von mika:
Code:
Wert Pins
1 1
2 2
3 1 & 2
Das verstehe ich nicht ganz. Könntest du mir das bitte ein wenig genauer erklären?
Danke!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von mika
mika

Registriert seit: 25. Okt 2002
176 Beiträge
 
Delphi 6 Professional
 
#5

Pins

  Alt 6. Mai 2003, 20:47
Hallo Florian,

Das ist ganz einfach

Die pins (1-8) sind gleichzusetzen mit den Bits in einem Byte

Pin 1 ist = Bit 0 ist = 1
Pin 2 ist = Bit 1 ist = 2
Pin 3 ist = Bit 2 ist = 4
Pin 4 ist = Bit 3 ist = 8
Pin 5 ist = Bit 4 ist = 16
Pin 6 ist = Bit 5 ist = 32
Pin 7 ist = Bit 6 ist = 64
Pin 8 ist = Bit 7 ist = 128


So kann man jeden Pin EINZELN schalten, man muss nur den Wert in den Port
schreiben. Wenn man MEHRERE Pins schalten will muss man addieren!

Also

Pin 1 und 3 schalten = 1 + 4 (wie oben beschrieben) also 5
wenn man den wert 5 schickt gehen die beiden Pins an.

Alle Pins schalten ergibt 255 (Summe aller Wert)

Pin 3 und 7 ist 4 + 64 = 68, wenn du 68 auf den Port schreibst dann gehen
Pin 3 und 7 an.
:: don't Panic ::
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#6
  Alt 8. Mai 2003, 20:58
Mika. Hast du dieses Programm gefunden von dem du mir erzählt hast? Das würde mir vielleicht doch noch etwas helfen. Morgen wird erstmal Assembler geschrieben in der Schule. Das wird eine entspannte Technik Stunde mit Delphi 6 Personal und meinem Multimeter!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von mika
mika

Registriert seit: 25. Okt 2002
176 Beiträge
 
Delphi 6 Professional
 
#7
  Alt 11. Mai 2003, 03:15
Hi Flomei,

ja das Programm hab ich wiedergefunden, ich poste das morgen mal
hier hoch, jetzt muss ich erst mal ne runde schlafen


bye
:: don't Panic ::
  Mit Zitat antworten Zitat
Benutzerbild von mika
mika

Registriert seit: 25. Okt 2002
176 Beiträge
 
Delphi 6 Professional
 
#8
  Alt 11. Mai 2003, 13:24
Hei Flomei,

ich hab das Programm wiedergefunden, aber das ist wirklich tierisch
unverständlich das war nur so n test für mich. Ich glaub ich kann
das besser mal überarbeiten damit das auch verständlich ist.

mfg, Michael
:: don't Panic ::
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#9
  Alt 15. Mai 2003, 08:42
Ich hab Probleme beim Einlesen der Pins. Bitte poste mal den Code mit dem ich ganz sicher die Pins einlesen kann.
Und noch ne technische Frage dazu : Wie setzt man die Statuspins am Besten auf High? Wir haben da rum probiert aber er wollte nicht. Kann aber auch am Code liegen.

DANKE!!!

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#10
  Alt 15. Mai 2003, 16:24
Hallo,

http://www.ensacom.de/forum/showtopic.php?threadid=13

Wenn Du damit nicht weiter kommst, kann ich Dir auch nicht helfen.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:29 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