FIFO in C

Gast #497903
Lesenswert?
• ▲
▼
jo schreibe eine Klasse in der alle Datengespeichert werden können. Und 
dann erstelle einen STL-Container und speicher die Daten darinnen. Sind 
ca. 20Zeilen an Code und müsste auf Anhieb laufen...
#498772
Lesenswert?
• ▲
▼
Mops wrote:
> geht das echt nur so komplizeiert?

STL ist nicht kompliziert.

> STL? nie gehört :-/

C++ - Standard Template Library
Als C Programmierer kannst du damit natürlich nichts
anfangen. In C++ wäre das aber das Mittel zur Wahl.

>
> ich dächte das wären ein paar 10 Codezeilen, einen kleinen FIFO zu
> machen.

Ist auch nicht schwer. Ist aber eine gute Übung für jeden C
Programmierer.

Als Ringbuffer ausgeführt:
Nimm dir ein Array, 2 Indizes (einer für Lesen,
einer für Schreiben) und mach 2 Funktionen für Reinstellen
und Rauslesen. Je nachdem, wie das konkret aufgebaut wird,
ist das einzig Knifflige das Feststellen wenn der FIFO voll
ist. Der Rest ist: Daten kopieren, Index erhöhen, Index auf
Wrap-Around testen, fertig.

Wenn du soweit bist, dann teste mal nicht mit deiner CAN Daten-
struktur, sondern mit stinknormalen int und mach die FIFO auch
nicht 10000 gross, sondern 5, 6 oder 8 (damit du nicht ewig
Debuggen musst um die Fälle Wrap-Around und 'FIFO voll' zu testen)
Gast #498785
Lesenswert?
• ▲
▼
Bevor der arme Kerl jetzt rausfindet, daß sein Compiler gar keine STL 
übersetzt, wenn doch, das Programm danach nicht in den Speicher passt, 
und wenn doch, ihm das
1
CanStruct fifo[10000];
den Rest gibt (zumindest, wenn er hier im Mikrocontroller-Forum 
tatsächlich richtig ist),

wenigstens etwas code.
http://www.thescripts.com/forum/thread212857.html

(Wenn du allen links aufmerksam folgst, gibt es da sogar richtig viel 
Code)


Oliver

Antwort schreiben

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.

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.