Entwickler-Ecke
Windows API - Serielle Schnitstelle auslesen?
enricoT - Fr 29.08.03 18:27
Titel: Serielle Schnitstelle auslesen?
Hallo, ich schreibe grade an einem Prog wwelches die serielle Schnittstelle testen soll.
Mit EscapeComfunction kann ich den Status von DSR und CTS abfragen und so feststellen ob sie gesetzt sind oder nicht.
Diesen Zustand stelle ich in einem Shape graphisch dar.
Nun mein Problem wie kann ich testen ob RXD HIGH oder LOW ist, die möchte ich ebenfalls in einem Shap darstellen!
Jede kleine Idee wwürde mir weiterhelfen.
EnricoT
The Life is only a Bug in Cods Assembler Code! :twisted:
Brueggendiek - Fr 29.08.03 22:31
Hallo Enrico!
Den Zustand der Rxd-Leitung wirst Du wohl nicht auslesen können, da Dein Programm sicher nicht schnell genug ist!
Das ist nämlich die Empfangsleitung, auf der die Daten ankommen.
Die Leitung wird auf 1 gehalten. Dann kommt für genau 1 Bitlänge (Zeit) eine 0 (Startbit), dann 7 oder 8 Datenbits, ggf. ein Paritätsbit und dann für mindestens 1, 1,5 oder 2 Bitlängen eine 1 (Stopbit).
Das nennt man eine asynchrone Übertragung, weil erst mit dem Startbit zu beliebiger Zeit die Übertragung gestartet wird.
Bei seriellen Schnittstellen kann man neben der Geschwindigkeit noch einstellen: 7 oder 8 Datenbist, keine/gerade/ungerade Parität und 1/1,5/2 Stopbit. Heutzutage ist üblich, 8 Datenbits, keine Parität und 1 Stopbit zu verwenden.
Zum Auslesen des Wertes muß das Datenregister der Schnittstelle ausgelesen werden. Die klassische Schnittstelle konnte übrigens nur 1 Zeichen empfangen - kam vor dem Abholen ein neues - wech iss das erste! Bei FiFo-Schnittstellen ist ein Speicher für einige Zeichen vorhanden. Auch da gilt: das n+1. Zeichen löscht das erste.
Die einzige Möglichkeit, "statische" Signale auszuwerten, besteht im Ziehen auf 0 für 1 Bit und dann mindesten 9 Bits Ruhe - wird interpretiert als $FF, also alle Bits gesetzt. Quasi ein Alarmspeicher - wenn ein Zeichen in der Schnittstelle ist, hat es mindestens einmal geklingelt!
Achtung: länger als Start + Datenbits + Parität sollte man die Leitung nicht auf 0 halten, da dann wegen fehlendem Stop-Bit ein Fehler erkannt wird.
Als weiteren statischen Eingang hätte ich noch RI (Ring Indicator, also das Tele bimmelt) anzubieten.
Gruß
Dietmar Brüggendiek
enricoT - Fr 29.08.03 22:57
Titel: Re Datenregister
Kann ich das mit writefile und readfile machen?
Denn wenn ich eine Asm-Routine schreibe werde ich bei Befehlen wie out und int ja zurückgewiesen.
Andere Frage gibt es einen Befehl mit welchem ich den Speiche löschen kann in welchem die gesendeten Byte stehen?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!