Hallo zusammen!
Habe mich jetzt schon eine ganze Weile hier umgesehen und festgestellt,
daß ich hier wohl goldrichtig bin :)
Ich habe mit Beispielcode aus genau derselben Ecke experimentiert und
zumindest kleinere Erfolge gefeiert.
Aber von Anfang an:
Ich versuche zur Zeit ein Modul via rs232 Schnittstelle zu steuern.
Dabei gehen Datenpakete geformt nach einem vorgegebenen Protokoll hin
und her (keine Flow control, 8 BIT Wörter, keine parität, 1 Stopbit,
kann auf 115200 Baud angesprochen werden)
Dafür nutze ich VC++6SP6, vermeide aber OO, da das ganze evtl ebenfalls
auf einen MC portiert werden soll.
Nun habe ich da ein paar seltsame Effekte.
1. ich bekomme keine oder nur teilweise Antwort vom Modul, wenn ich mein
Testprogramm das 1. Mal starte. Danach funzt es einwandfrei.
2. Wenn ich den Comport nicht einmal öffne und gleich wieder schliesse,
habe ich den effekt, daß mein Programm das "Ack" Paket verschluckt (1
Byte) und sich damit der empfang verschiebt und am ende mein CRC8 Paket
nicht mehr stimmt (wird hinten angehängt).
3. bei einem gerade heute getesteten Datenpaket bekomme ich nur jeden 4.
bis 5. Programmstart eine Antwort.
4. wenn ich die Timeout Werte erhöhe, dann wird der Timeout ab einem
bestimmten Wert nicht mehr wirklich ehrhöht..ein Timeout von z.B. 5
Sekunden ist nicht mehr möglich, wäre aber wünschenswert..für Testzwecke
wäre es vielleicht sogar gut den Timout, wie oben ungewollt schon
geschehen, mal ganz auszuschalten.
Ich habe die vermutung, daß die Probleme irgendwie mit dem Timing
zusammenhängen. Vielleicht speichter das Readfile auch irgendwelchen
Müll, der dann teilweise noch mit ausgelesen wurde. Ich weiss einfach zu
wenig von der API, die ich da anprogrammiert habe.
Leider habe ich grundsätzlich sehr wenig über dieses Thema gefunden.
Gibt es irgendwo eine Seite, die genau diese umschreibt mit allen
Optionen, die möglich sind?
Vielen dank schonmal für eure antworten
ohja...noch zur Info: ich bin nicht der absolute C bzw C++ Spezialist
und, wie man dem Kontext entnehmen kann, auch noch ein relativ
unbeschriebenes Blatt, was die RS232 Kommunikation angeht.