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)