Forum: Mikrocontroller und Digitale Elektronik Buffer Wechseln


von Michael Hegener (Gast)


Lesenswert?

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.

von Dirk (Gast)


Lesenswert?

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

von schlumpf (Gast)


Lesenswert?

Und was ist jetzt die Frage?

von TravelRec. (Gast)


Lesenswert?

...wieder mal jemand, der mit Informationen nur so um sich haut...

von Michael Hegener (Gast)


Lesenswert?

Oh Entschuldigung das ich Frage!
Was fehlt denn noch an Information?

von A.K. (Gast)


Lesenswert?

"Entschuldigung das ich Frage"

Lies nochmal deinen Text durch. Es ist keine einzige Frage drin. Du
beschreibst nur, wie du vorzugehen gedenkst.

von Michael Hegener (Gast)


Lesenswert?

Frage: Wie stelle ich das mit C als Programmiersprache an?

von TravelRec. (Gast)


Lesenswert?

Auf welchem Controller bitte?

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Nimm einen (genügend grossen) Puffer und benutze verschiedene Zeiger für
das Eintragen und Auslesen.

von Michael Hegener (Gast)


Lesenswert?

MB90F350 Fujitsu

von Karl heinz B. (kbucheg)


Lesenswert?

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] );
}

von Michael Hegener (Gast)


Lesenswert?

Danke schön!!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.