mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Empfangen beim UART zeitweilig ausschalten


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man Manuell einstellen, daß der UART keine Daten annimmt
(empfängt)? Also am Anfang einer Procedure soll das Empfangen
deaktiviert werden und am Ende wieder aktiviert.

Habe ich das richtig im Datenblatt gelesen, daß das was mit dem 4. Bit
(Receiver Enable) im UCR zu tun hat?

Ich nutze Assembler und einen AT2313

Autor: Martin de Wendt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

entweder so oder wenn du per INT empfängst diesen einfach ausschalten.


Martin

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber gehen mir nicht Daten verloren, wenn ich den Interrupt ausschalte?
Oder werden erst neue Daten angenommen, wenn ich UDR leere?

Autor: Gerhard Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Aus- und Einschalten vom Receiver würde ich tunlichst nicht machen, das
gibt 100% maximalen Ärger. Mit dem Synchronisieren beim Startbit, mit
dem Anlaufen des Baudraten-Generators, usw. Abschalten bringt ja nix,
wenn der Sender nicht aufhört zu senden. Wenn Deine Routine so lang
dauert, dass Du Zeichen verlieren kannst, dann musst Du eben mit INT
arbeiten und alles in einen Ringpuffer im SRAM schieben. Alles andere
wird Murks.

Auch ein Hardware-(über RTS/CTS) oder Software-Protokoll kann gehen,
ist aber ein Heidenaufwand beim Implementieren. Und mit eins bis drei
Zeichen Verspätung bei der Reaktion muss man auch dann noch rechnen.

Aber sieh Dir erst mal die Zeiten an, die Deine Routine so braucht. Bis
das nächste Zeichen über die SIO-Schnecke kommst, kannst Du ganz schön
was abarbeiten.

MfG
Gerd

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hat Gerd vollkommen recht.

Der einzig sinnvolle Grund, die UART auszuschalten, ist im Halb-Duplex,
wenn man nicht sein eigenes Echo empfangen will.
Dann hat man nämlich mit dem Sendeinterrupt nach dem Stopbit auch genau
den richtigen Zeitpunkt, um den Empfang wieder einzuschalten.

Ansonsten bewirkt Ausschalten nur Datenmüll.


Peter

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo das mit dem Datenmüll habe ich gemerkt!

Ich habe jetzt einfach die Baudrate von 9600 auf 4800 runtergesetzt!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.