![]() |
Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Hallo allerseits,
ich arbeite erfolgreich mit der SerialNG - Komponente zum Ansteuern der seriellen Schniuttstellen. Nun habe ich das Problem, dass ich nicht Strings über die Schnittstelle senden will, sondern synchron senden muss, d.h. (so wie ich es verstanden habe)ich muss die TxD bitweise setzen. Meine Frage ist nun, wie kann ich die TxD mithilfe der SerialNG für XX Milisekunden einschalten bzw. ausschalten? Besten Dank für eure Hilfe. Murphy |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Gar nicht - abhängig von der Übertragungsgeschwindigkeit (Baudrate) sind die schnittstellen intern getaktet und du hast von aussen keine Möglichkeit diese Pins einzeln "zu schalten".
|
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
BEsten Dank für die Antwort.
Hatte nur gehofft, es geht, da ja SerialNG angeblich auch zur synchronen Kommunikation verwendet werden kann... Murphy |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Man könnte höchstens die Ausgänge RTS und DTR direkt steuern.
Dazu braucht man aber keine Komponente, sondern man muss SetCommState mit den richtigen Parametern aufrufen. Ob man dann die Leitungen im Millisekundenbereich schalten kann ist aber fraglich. |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Danke für die Antwort, aber leider muss ich synchron über TxD senden(es handelt sich um eine 8fache LED-Ansteuerung).
Durch schicken/setzen der jeweiligen Bits, gehen die LEDs entsprechend an/aus. Murphy |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Zitat:
für echtes synchrones Senden braucht man einen Chip, der synchrone Protokolle beherrscht, und solche sind in PCs üblicherweise nicht eingebaut. Dazu gehört auch, dass der Takt über die Schnittstelle mitübertragen wird, und einiges andere wie das automatische Einfügen von 0 oder 1 bei konstanten Bitfolgen. Wahrscheinlich handelt es sich also nicht um eine synchrone Übertragung, sondern um eine in einem festen Zeitraster - das ist aber bei asynchron genauso der Fall, die Zeit für 1 Bit hängt direkt von der Baudrate ab (bei 9600 Baud also 104 µsec pro bit). Gruss Reinhard |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Dann muss ich mich wohl damit abfinden, dass es nicht geht :-(
Trotzdem vielen Dank an alle, die mit Tipps zur Seite standen !! Murphy |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Hallo,
Zitat:
Diese Aussage kannst du vergessen. Sie ist schlichtweg falsch! Rainer |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Es wird sich bei der Leuchtdiodenschaltung wohl um ein getaktes Schieberegister handeln.
Das hat mir meine Glaskugel gesagt. :-) Also wird ein Taktsignal und ein Datensignal benötigt. Wie schnell getaktet wird spielt (fast) keine Rolle. Nach 8 Takten zeigen die LEDs die letzten 8 Datenbits an. Also müsste es möglich sein die Ausgänge RTS und DTR mit den Eingängen Takt und Data der Schaltung zu verbinden und die serielle Schnittstelle zu missbrauchen. Die Ausgangegeschwindigkeit erreicht so vielleicht nur 50 bis 100 Baud und hängt von der Rechnerleistung ab, aber das macht nix, man sieht dann halt an den LEDs, wie die Bits geschoben werden. |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Macht vielleicht Sinn, mal einen Blick auf die Hardware zu werfen, die angesteuert werden soll. Vielleicht ist alles gar nicht so wild wie es scheint... Hab schon die wildesten (falschen) Specs gesehen :)
|
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Zitat:
@other: Ich steuer ein solches Schieberegister (LS145) über einen Controller an und habe zuvor zum Test einfach an den Parallelport gehangen. Dort ein Pin als Takt wackeln zu lassen und entsprechend ein anderes Pin mit einem Datenbit zu belegen ist nun wirklich kein Problem. |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Zitat:
Gruß Der Unwissende |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Hallo allerseits noch einmal,
da die Diskussion etwas von dem eigentlichen Thema abzuschweifen scheint, möchte ich mein problem nochmal kurz zusammenfassen: Weiß jemand, ob bzw. wie ich mit der SerialNG - Komponente (oder einer anderen, wenn es da geht) synchron ein Byte übertragen kann. Es würde mir auch helfen, wenn jemand weiß, wie ich für ein paar Milisekunden TxD setzen kann. SerialNG unterstützt nur das Senden von Strings (bzw. über zeiger das Senden beliebiger Daten) , soweit ich bisher herausgefunden habe. Es gab vor Jahren einmal eine serielle Unit von Jörg Schieb, da ging das ganz einfach: TxD(1) Schaltet ein, TxD(0) schaltet ab etc... allerdings ist mit dieser Unit nicht möglich, mehrere COM gleichzeitig anzusprechen, was ich leider muss. Außerdem ist der interessante Code in einer DLL abgelegt, so dass ich auch mit "reverse engineering" nichts werden kann :-( /* Hilfe */ Murphy |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Du hast die letzten Posts anscheinend nicht gelesen - oder nicht verstanden. *sigh*
|
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
gelesen:ja verstanden: nicht wirklich
Bin eben kein Techniker sondern nur ein armer Programmeirer.... Murphy |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Zitat:
Synchron sollte einem Programmierer ein Begriff sein (ein Techniker muss das nicht interessieren). Der Aufruf einer Prozedur in deinen Programmen erfolgt für dich synchron. Du rufst die Prozedur auf und wartest, bis die abgearbeitet ist. Die Abarbeitung geht dabei an einer anderen Stelle weiter, trotzdem wartet das Programm, bis die Prozedur zuende abgearbeitet wurde. Synchrone Kommunikation funktioniert ganz einfach so, dass du eine Anfrage stellst und auf eine Antwort wartest. Das die RS-232 asynchron arbeitet hat nichts mit der Kommunikation zu tun, die du darauf aufbauen kannst. Verschickst du Daten über die RS-232 Schnittstelle, so ist es einfach Sache des Empfängers irgendwann die Daten zu bearbeiten. Ob du eine Antwort bekommst oder nicht, alles Sache des Empfängers. Du weißt es nicht. Für den Sender ist die Arbeit mit dem Versenden abgeschlossen. Erwartest du eine Antwort, dann musst du das selbst programmieren. Wartest du in deinem Programm auf eine Antwort, dann hast du das Programm synchronisiert (warten auf ein bestimmtes Ereignis). Du siehst vielleicht schon, Sychron hat nichts damit zu tun, dass du etwas für eine bestimmte Zeit aktiv hälst. Andererseits kannst du auch eine LED schalten, indem du nur schnell genug Impulse schickst. Schaltest du die LED mit einer hohen Frequenz an und aus, dann wird das normale menschliche Auge dank seiner Trägheit nicht wahrnehmen, dass die LED mal nicht an ist. Gruß Der Unwissende |
Re: Frage zu SerialNG / Ansteuerung TxD an COM-PORT
Ich hab mal eben kurz in die Specs geschaut, aber die gängigen RS-232 Chips (bzw. deren Nachfahren) kennen anscheinend keine Methode um RXD/TXD gezielt auf einem bestimmten festen Wert zu setzen. Dazu eignen sich viel eher die Handshakeleitungen, die sind nämlich ziemlich gezielt schaltbar. Daher bezweifel ich etwas die Aussage von weiter oben dass das schonmal gegangen sei. Nichtsdestotrotz bleibt mein Kommentar, die Hardware doch bitte mal genauer vorzustellen, auch unbeachtet. Vermutlich ist Dein Problem nämlich eigentlich gar keines. Es fehlt Dir nur an Möglichkeiten, die Problemstellung umfassend zu beschreiben. Du gehst meiner Meinung nach das Problem von der falschen Seite an. Du solltest nicht fragen "ich hab mir das und das zurechtgelegt, wie geht das" sondern einen Schritt früher bereits die Frage stellen "wie löse ich diese Aufgabe". Daher nochmal meine Bitte, näher auf die Hardware einzugehen. Hast Du Dokumentation zur Hardware? Was für Hardware ist das? Ggf. ist einfach die Anbindung an den Rechner das Problem, für so eine LED-Ansteuerung würde ich aus Bequemlichkeit den Printerport nehmen. Wenns denn unbedingt seriell sein soll, gibts aber auch dafür Lösungen. Asynchron/Synchron heisst bei Datenverbindungen einfach nur, ob die Datenübertragung mit einem Taktsignal synchronisiert wird. SCSI kennt zum Beispiel beide Modi, wobei asynchron aufgrund des aufwendigeren Verfahrens deutlich langsamer ist - Wenn beide Seiten über eine Taktleitung synchronisiert werden, sind viel schnellere Transfers möglich.
Daher ist RS-232 eigentlich nicht synchron zu betreiben, das Taktsignal ergibt sich aus dem Busprotokoll und wird nicht separat übertragen. Aber das sind alles nur Details am Rande, worauf ich hinaus wollte, ist eigentlich: Du musst mehr Details liefern und umfangreicher das "grosse" Problem beschreiben, das Detail an dem Du gerade hängst klappt vermutlich nicht, weil Du Dich in eine falsche Sache verrannt hast. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:11 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-2025 by Thomas Breitkreuz