Gast
#3419342
Hallo zusammen, für ein Projekt mit einem AVR und einem Grafik-LCD will ich eine Oszilloskopanzeige implementieren. Das Ganze ist kein Selbstzweck, sondern nur eine Anzeigeoption für einen dynamischen Regelvorgang, der schon auf dem AVR implementiert ist. Ich habe also Werte, die äquidistant in einem Interrupt erzeugt werden, und von denen die letzten N (z.B. N=128) Werte in einer nicht-zeitkonstaten Hauptschleife dargestellt werden. Während der Anzeige in der Hauptschleife werden im Interrupt sicherlich mehrere neue Werte erzeugt. Momentan suche ich noch nach der geeigneten Pufferstrategie: Im Interrupt muß ein Puffer A gefüllt werden, in der Hauptschleife muß ein anderer Puffer B abgearbeitet werden, der zeitlich konstant ist. Wenn dieser Puffer B mit weniger als N Werten gefüllt ist, müssen der auch noch mit Werten aus einem vorherigen Durchgang von Puffer A oder älteren Werten aus Puffer B aufgefüllt werden. Also bräuchte ich wohl eine Dreifachpufferstrategie? Es müßte sich ja eigentlich um ein Standardproblem mit Standardlösungen handeln: Ich will immer N letzte Werte unverändert anzeigen - wenn in der Zwischenzeit mehr als N Werte erzeugt werden können die ältesten verworfen werden, eine Abarbeitung darf dagegen nicht die alten Werte entfernen. Ist Dreifachpufferung die richtige Strategie oder habe ich etwas einfacheres übersehen? Viele Grüße W.T.