UART Empfang mit AVR Atmega8

Gast #127078
Hi @all mal wieder ;)

habe mir jetzt einige Codes angeschaut was den Empfang per UART
betrifft. Ein zeichen zu empfangen und auszuwerten ok. Aber wie mach
ich es z.b. wenn ich mehrere Zeichen empfangen will und dann später
auswerten ?

Empfang durch Interupt & dann in einer Form eines Ringpuffers ?!

Nur wie ist der Ablauf des Ringpuffers das habe ich leider nach
anschauen der vielen Codes nicht wirklich verstanden, und abschreiben
ohne zu verstehen will ich nicht.

Währe vieleicht einer so freundlich und könnte mir das mit dem
Ringpuffer nochmal erklären ?

Gruß Dennis
Gast #127079
Ganz einfach, du nimmst dir einen Speicherbereich der von Adresse A bis
B geht.

Dann nimmst du zwei Zeiger, nennen wir sie X und Y. Dort steht eine
Adresse deines Speicherbereichs drin.

Dann schreibst du dir eine Funktion welche den Inhalt von X/Y lesen und
schreiben kann.

Dann eine weitere Funktion welche den Wert von X oder Y inkrementiert
und wenn der Wert B erreicht wird, wieder auf A setzt.

Und dann machst du dir noch ein paar Gedanken um ueberlauf, oder sagen
wir mal lieber ueberrundung und Endabfrage. :-]

Olaf

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.