Liste der letzten 5 Einträge einlesen.

Gast #773060
Lesenswert?

Hallo!

Mich beschäftigt nun schon 3 Tage folgendes Problem.
Ich möchte im EEprom 5 Einträge abspeichern und mir irgendwie 
erkenntlich machen welcher Eintrag denn immer der letzte war.

Ein Eintrag hat dabei folgenden Aufbau:
1
struct sMSG {
2
  unsigned bNewMsg:1;
3
  char from[2];
4
  char to[2];
5
  char msg[21];
6
};

davon habe ich nun 5 Stück angeleg...
1
struct sMSG msgBUF[5];

gespeichert wird wie folgt...
1
  msgBUF[byt_msg_buf_pos] = msgIN;
2
  byt_msg_buf_pos++;
3
  if (byt_msg_buf_pos > 4) byt_msg_buf_pos = 0;

Das klappt soweit auch alles. Hurra :-)

Nun möchte ich aber wissen welcher Eintrag der letzte ist damit man den 
dann immer als erstes ausgeben kann. Ok byt_msg_buf_pos sagt mir das 
solange ich den Strom nicht abschalte. Doch wie kann ich mir das im 
EEProm im Datensatz merken damit ich eine Zelle nicht ständig belaste.

Ich hoffe ich konnte meine Frage einigermaßen beschreiben... ;-)



MfG AVRli...
Gast #773551
Lesenswert?

That's is!!!

Man man man... also ehrlich das ist genial!
Ich mache es so wie Peter Dannegger es beschrieben hat.

In dem Dokument wird es nochmal ausführlich behandelt, denke aber das 
Prinzip ist das gleiche.

>
> Oder speichere byt_msg_buf_pos auch im EEPROM ab
>

Naja das wollte ich ja vermeiden denn dann ist diese Stelle die am 
ehesten kaputt geht. So verteile ich das auf meine Einträge somit sind 
dann 5x mehr Schreibzyklen möglich als bei der "bequemen" Variante.

Vielen Dank!
MfG AVRli

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