mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART-Auswertung


Autor: Ralf (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen ATMega32 mit einem MAX232 (RS232-Pegelwandler) an einen
PC angeschlossen. Der ATMega soll Befehle die vom PC gesendet werden,
ausführen.
Ich habe die Interrupt-Funktion "Daten empfangen" aktiviert. Wenn ein
Byte ankommt lese ich es aus und führe entsprechende Befehle aus.
Im Anhang ist ein Auszug des entsprechenden Codes.
Ist das umständlich wie ich das mache? Wie macht ihr sowas?

Danke schonmal...

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn mehr zur Auswahl steht ist vieleicht Switch / Case eine alternative

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage:

Ich führe meine ganzen Befehle sofort in der
"Byte-Empfangen-Interrupt-Routine" aus. Nehmen wir mal an ich brauche
zu lang um die Befehle auszuführen und es kommen in der Zwischenzeit
schon weitere Bytes über UART rein. Dann gehen Bytes verloren, oder?
Sollte ich in der Interruptroutine die empfangenen Bytes nur in einem
Array speichern und die Befehle im Hauptprogramm ausführen?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So soll es sein...
Die ISR empfängt nur und schreibt die empfangenen Bytes in einen Buffer
(Ringspeicher) und erhöht einen counter, damit man weiss, wieviele Bytes
dort lagern. Weiter nichts. Alles andere ist Murks, auch wenn es da und
dort problemlos funktioniert, wenn man es anders macht.

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.