Buffer Wechseln

Gast #404289
Hallo werte Gemeinde.
Möchte gerne gespeicherte Messwerte des ADC in Buffer schreiben.
Nun soll noch mit den Werten gerechnet werden und zu diesem zweck soll
wenn der erste Buffer voll ist in einen zweiten und dritten geschrieben
werden und um nicht mit den "neuen" Messwerten zu rechnen.
Gast
Hallo,

und wo genau ist das Problem?

Bau Dir drei getrennte FIFO Buffer mit Füllstandsanzeige auf und bei
einem Overflow des ersten FIFO's speichert du deine Daten ins
naechste.

Gruß,

Dirk
Wo liegt das Problem?

struct Buffer {
  int Werte[100];
  int NrWerte;
};

struct Buffer Messung1;    // der erste Buffer
struct Buffer Messung2;    // der zweite Buffer
struct Buffer Messung3;    // der dritte Buffer
struct Buffer* Active;     // Zeiger auf den aktiven Buffer
                           // in den aktiven Buffer werden Werte
                           // geschrieben

void Store( int Wert )
{
  // Speicher den Wert im aktiven Buffer
  Active->Werte[ Active->NrWerte ] = Wert;
  Active->NrWerte++;
}

int main()
{
  // den ersten Buffer aktivieren
  Messung1.NrWerte = 0;
  Active = &Messung1;

  // speichere ein paar Werte im aktiven Buffer
  Store( 100 );
  Store( 50 );
  Store( 150 );

  // Es ist Zeit den 2. Buffer zu aktivieren ...
  Messung2.NrWerte = 0;
  Active = &Messung2;

  // .. denn wir wollen mit der ersten Messreihe was machen
  Compute( &Messung1 );
}

void Compute( struct Buffer& Buff )
{
  int i;

  for( i = 0; i < Buff->NrWerte; ++i )
    printf( Buff->Werte[i] );
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.