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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren