www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FIFO Code gesucht


Autor: FrankieH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte gerne Daten über die serielle Schnittstelle empfangen und 
suche noch ein Codebeispiel in C für einen FIFO-Buffer. Das soll 
interruptgesteuert ablaufen und ich hab keinen Bock das Rad neu zu 
erfinden. Sowas gibt es sicher schon irgendwo. Bin für Hinweise oder 
Beispielcode dankbar!


Gruss & Dank

Frank

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

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

da sich Deiner keiner annimmt, hier meine Routinen für Interruptbetrieb 
mit FIFO der ser. Schnittstelle bei AVR-Controllern.

FIFOs sind für Senden und Empfangen separat, wobei zu jedem FIFO 
gehören: Puffer (hier statisch 1-255), Schreibzeiger, Lesezeiger und 
Anzahl.
Beim Empfang (z.B.) wird das betreffende Zeichen in den Puffer mit 
Schreibzeiger indiziert abgelegt; zudem werden Schreibzeiger und Anzahl 
erhöht. Beim Auslesen wird das Zeichen Puffer[Lesezeiger++] gelesen und 
die Anzahl verringert. (vorausgesetzt, daß der Puffer beim Empfang nicht 
schon komplett voll, bzw. beim Lesen nicht komplett leer ist !)
Erreicht ein Zeiger das Pufferende, wird er wieder auf 0 gesetzt.

Die beiliegenden Routinen sind ein guter Kompromiss für Geschwindigkeit 
und Speicherbedarf bei AVR-Controllern.

Ich hoffe, Dir hilft es.

Michael

Autor: FrankieH (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Michael,

sorry für die späte Antwort. Vielen Dank für den Code, hab ich gut 
gebrauchen können. War echt nett den mal hier zur Verfügung zu stellen.

Gruss & Dank

Frank

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.