AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mal wieder Serielle Schnittstelle :)
Thema durchsuchen
Ansicht
Themen-Optionen

Mal wieder Serielle Schnittstelle :)

Offene Frage von "Johannes Maier"
Ein Thema von Johannes Maier · begonnen am 12. Nov 2004 · letzter Beitrag vom 16. Nov 2004
Antwort Antwort
Johannes Maier

Registriert seit: 3. Sep 2004
25 Beiträge
 
Delphi 7 Professional
 
#1

Mal wieder Serielle Schnittstelle :)

  Alt 12. Nov 2004, 12:58
Hi,

ich habe ein paar Fragen, die auch nach Bedienung der Suchfunktion noch nicht selbst beantworten konnte:
Ich möchte, dass PIN Nummer 2 der Seriellen Schnittstelle gesetzt wird, nun habe ich mir zur Verwirklichung die IO.dll runtergeladen und eingebunden. Ich hab also jetzt die zwei Funktionen
Delphi-Quellcode:
procedure PortOut(Data: Word; Wert: Byte); stdcall; external 'io.dll';
function PortIn(Data: Word); stdcall; external 'io.dll';
Damit kann ich auch Werte setzen (in $378) allerdings hab ich eine Sache nicht wirklich verstanden: Was sind denn Serielle Schnittstelle - Parallelport, bzw. gibt es da einen Unterschied.
Die Frage stelle ich mir, da mir jemand im DF geschrieben hat, dass man die Sache mir der Ansteuerung der Seriellen Schnittstelle auch über den Parallelport regeln könne (hoffe ich hab das so richtig wiedergegeben). Er hat aber auch gemeint, dass es da 8 Datenleitungen oder so gibt, D0-D7 ... auf dem Stecker, den ich in LPT1 stecke, sehe ich aber auf der einen Seite 13 Anschlüsse, auf der anderen 12. Ich muss auf der Seite mit den 13 Anschlüssen den zweiten ansprechen/steuern können.
Wie geht das jetzt?
Hoffentlich könnt ihr mir (oder besser demjenigen, der mich das gefragt hat ) helfen,

Johannes
Johannes Maier
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Mal wieder Serielle Schnittstelle :)

  Alt 12. Nov 2004, 13:12
Serielle und Paralle Schnittstellen sind 2 Paar Stiefel. Es sind große Unterschiede vorhanden.

Der Name sagt schon viel. Über die serielle Schnittstelle werden alle Bits einer Kommunikation seriell übertragen. Bei der (beim PC gebräuchlichen) parallen Schnittstelle werden 8 Bits parallel übertragen. Für jede Schnittstelle gibt es diverse Steuerleitungen (Masse, Tasksignal u.ä.), weshalb auch mehr als 9 (8 Signalleitungen + Masseleitung) bei der Parallen Schnittstelle und mehr als 2 (Signalleitung + Masseleitung) bei der seriellen Schnittstelle vorhanden sind.

Sag einfach mal was du Steuern willst. Für serielle Kommunikation gibt es viele fertige Komponenten (z.B. AsyncPro), welche dir einen großteil der Basis-Kommunikationsarbeit abnehmen. Bei der bidirektionalen parallen Schnittstelle schaut es schlechter aus (wußte auch keine Lösung welche von 9x-2003 funktionieren würde).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Johannes Maier

Registriert seit: 3. Sep 2004
25 Beiträge
 
Delphi 7 Professional
 
#3

Re: Mal wieder Serielle Schnittstelle :)

  Alt 12. Nov 2004, 13:17
Ein Freund von mir möchte eine Waschmaschine an seinen PC anschließen (über LPT1) und ich soll das Kommunikationsprogramm schreiben. Er hat sich da einen Stecker gebastelt, der an der Seriellen Schnittstelle angebracht wird. Und zwar ist dort am zweiten Anschluss von links in der Reihe, wo 13 Anschlüsse sind, das Kabel "angelötet". Das ist soweit ich ihn verstanden hab dafür zuständig, dass die Waschmaschine angeht. Diesen PIN soll ich nun mit einem Programm ansteuern und setzen können.
Allerdings weiß ich nicht genau, wie ich das bewerkstelligen soll und hoffe auf nützliche Tipps/Links von euch
Achja, ich soll noch fragen, ob ich da einen Widerstand auslesen kann (kA was er damit genau meint)

Gruß
Johannes
Johannes Maier
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Mal wieder Serielle Schnittstelle :)

  Alt 12. Nov 2004, 13:38
Zitat von Johannes Maier:
Ein Freund von mir möchte eine Waschmaschine an seinen PC anschließen (über LPT1) und ich soll das Kommunikationsprogramm schreiben. Er hat sich da einen Stecker gebastelt, der an der Seriellen Schnittstelle angebracht wird
Na was nun ? LPT1 ist eine parallele Schnittstelle.
Zitat von Johannes Maier:
Und zwar ist dort am zweiten Anschluss von links in der Reihe, wo 13 Anschlüsse sind, das Kabel "angelötet". Das ist soweit ich ihn verstanden hab dafür zuständig, dass die Waschmaschine angeht. Diesen PIN soll ich nun mit einem Programm ansteuern und setzen können.
Allerdings weiß ich nicht genau, wie ich das bewerkstelligen soll und hoffe auf nützliche Tipps/Links von euch
Besorg dir mal ne Dokumentation von dem parallelen Stecker, wirst sicher einiges im Netz finden Google und so. Dor wird dann irgendwo erklärt sein, welcher Pin welche Funktion hat.
Dann steht dort auch welcher Pin D0 bis D7 ist (was ich noch weis, müßte Pin2 D0 sein, Pin3 D1 .....)

Dann kanst mit der DLL von oben einfach die Werte schreiben 0 alles aus (Wert mußt binär zusammenrechnen D0 .. 1, D1..2, D2..4, D3...8 ...)
[/quote]

Zitat von Johannes Maier:
Achja, ich soll noch fragen, ob ich da einen Widerstand auslesen kann (kA was er damit genau meint)
Würde theoretisch gehen, wird aber etwas komplizierter, entweder mit AD Wandler werklen, oder mit einem Kondensator -> aufladen des Kondensators -> entladen über Widerstand und zeit messen (am PC) bis der Wert unter einen bestimmten Pegel fällt.
Wirst aber in jeden Fall eine kleine externe Schaltung brauchen
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Johannes Maier

Registriert seit: 3. Sep 2004
25 Beiträge
 
Delphi 7 Professional
 
#5

Re: Mal wieder Serielle Schnittstelle :)

  Alt 12. Nov 2004, 14:04
Vielen Dank, ich hab das jetzt mit Seriell oder Parallel endlich verstanden
Hab auch eben erst erfahren, dass der Stecker in den parallelen Steckplatz muss, da ich mich da aber nciht auskenne und er gesagt hatte, es sei über Seriell zu regeln .....
So werd ich schon eine Lösung finden, danke

Hmm, welche Zahl muss ich mit PortOut($378, zahl) übergeben, damit ich den zweiten Anschluss von links auf der längeren Seite des Parallelports aktivieren kann, und wie kann ich ihn wieder deaktivieren?
Johannes Maier
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Mal wieder Serielle Schnittstelle :)

  Alt 12. Nov 2004, 15:47
Zitat von Johannes Maier:
Vielen Dank, ich hab das jetzt mit Seriell oder Parallel endlich verstanden
Hab auch eben erst erfahren, dass der Stecker in den parallelen Steckplatz muss, da ich mich da aber nciht auskenne und er gesagt hatte, es sei über Seriell zu regeln .....
So werd ich schon eine Lösung finden, danke

Hmm, welche Zahl muss ich mit PortOut($378, zahl) übergeben, damit ich den zweiten Anschluss von links auf der längeren Seite des Parallelports aktivieren kann, und wie kann ich ihn wieder deaktivieren?
vermute mal PortOut($378, 1); zum einschalten und PortOut($378, 0) zum auschalten,
aber zum testen kannst ja einfach mal alle Datenbits auf 1 stellen (hängst die restlichen einfach ab)
PortOut($378, 255) alle bits ein und PortOut($378, 0) alle bits aus
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Johannes Maier

Registriert seit: 3. Sep 2004
25 Beiträge
 
Delphi 7 Professional
 
#7

Re: Mal wieder Serielle Schnittstelle :)

  Alt 12. Nov 2004, 19:10
Hmm jo so ungefähr hab ich mir das auch gedacht. Aber da es doch 256 gibt (oder?), müsste dann nicht PortOut($378, 0) beim o. (also quasi 1.) ein Datenbit setzen und nur die anderen 255 löschen?
Johannes Maier
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Mal wieder Serielle Schnittstelle :)

  Alt 16. Nov 2004, 08:08
Zitat von Johannes Maier:
Hmm jo so ungefähr hab ich mir das auch gedacht. Aber da es doch 256 gibt (oder?), müsste dann nicht PortOut($378, 0) beim o. (also quasi 1.) ein Datenbit setzen und nur die anderen 255 löschen?
ne, es gibt nur werte von 0d bis 255d (0000.0000b bis 1111.1111b) 8 Bit kannst es ja im Windows-Rechner mal testem, 256d ist schon 1.000.000b
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:47 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