Hallo Forum, ich bin gerade dabei einen RS485 Master auf einem ATM128 zu schreiben und möchte die Uart-lib von PF verwenden. Das einbinden klappt einwandfrei und auch die Funktion ist, bis auf eine Kleinigkeit, perfekt. Das Problem ist, dass nach dem Senden die gesendeten Zeichen im Fifo-Buffer "bleiben" und somit quasi über get_c() wieder "empfangen" werden. Leider verfügt das zu verwendende Protokoll nicht über ein spezielles Startzeichen sodass ich die gesendeten Zeichen nicht von den empfangenen separieren kann. Hatte jmd. evtl. das selbe Problem bzw. eine Lösung dafür? Vielen Dank schon einmal. benutzt wird die unveränderte Version der Homepage von PF.
Das hat nichts mit der UART-Lib zu tun, sondern damit, wie du den RS485-Bus handhabst. Wenn du beim Senden das Empfangen am Transceiver nicht abschaltest, bekommst du halt deine eigenen Daten als Echo zurück.
Stimmt natürlich, hatte ich übersehen. Leider steht die Hardware soweit schon und das Receive Enable ist fest auf GND gezogen. :-( Hat evtl. jemand eine Idee wie man das lösen kann??? Danke speziell auch an Stefan für den Tip
Daniel Held schrieb: > Hat evtl. jemand eine Idee wie man das lösen kann??? Führ dir ein Flag in die Software ein, welches aussagt, dass gerade gesendet wird. Solange das Flag auf TRUE ist, verwirft die Empfangsroutine alles was reinkommt. Problem könnte das letzte gesendete Byte aufwerfen. D.h. du musst ein wenig warten, ehe das Flag zurückgesetzt wird, welches den Empfangscode wieder freischaltet.
Danke Karl-Heinz, werde das gleich mal testen. Ich könnte doch zum Rücksetzen des Flags das TXC0-Flag (Transmitt complete) aus UCSR0A verwenden?
Funktioniert :-) Nochmals DANKE für's "Augen öffnen" an Karl-Heinz
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.