Zitat Zitat von enterprise30
Wobei ich eigentlich die Adresse der Speicherstelle im EEprom vergessen kann da die ja IMMER gleich sein muß - denn woher weiss das Programm sonst wo es im EEprom nachgucken soll?
Ergo könnte ich mir das versetzen der Daten im EEprom sparen - das beisst sich doch der Hund in Schwanz - oder?
Warum?
Du kannst doch einfach noch einen zusätzlichen Wert mit ins EEPROM legen, aus dem du entnehmen kannst welcher Eintrag denn nun der aktuellste ist. Im einfachsten Fall wäre das eine Variable die bei jedem Speichern um 1 hochgezählt wird. Beim einschalten musst du dann nur noch den Eintrag finden, bei dem diese Variable den höchsten Wert hat (Überlauf bedenken, denn möglicherweise ist der "höchste Wert" 0)

Prinzipiell könntest du auch den Tachostand selbst dafür verwenden, aber das wäre unflexibler (z.B. wäre es dann deutlich aufwändiger mit dem Tachostand irgendwas anderes zu machen als ihn zu erhöhen)


Damit du bei der Initialisierung auch die richtigen Speicherstellen im EEPROM absuchst, sollten deine Daten inkl. Zählvariable natürlich eine Größe haben die auch "passt" (die Größe des EEPROMs muss ein ganzzahliges Vielfaches der Datengröße sein). Falls die Daten zu klein sind, musst du eben zur nächsten passenden Größe "aufrunden", also die neuen Daten beim speichern eben nicht direkt an die alten hängen, sondern mit etwas Abstand.



oder anders ausgedrückt:
du zerlegst das EEPROM in Segmente gleicher Größe, in die deine Daten gerade noch so rein passen, und dann speicherst du zuerst in Segment 1, dann in Segment 2 ... bis du das Ende erreicht hast, dann geht es wieder bei Segment 1 weiter. Da die Anfangsadressen der Segmente sich nicht ändern, kannst du so problemlos bei der Initialisierung das Segment suchen in dem die aktuellsten Daten liegen. (also das bei dem z.B. eine Zählvariable, oder der Tachostand den höchsten Wert hat)


Du musst dir also nirgends eine konkrete Adresse merken an der deine Daten liegen.


Ich hoffe ich habs halbwegs verständlich erklärt...
ist nicht so einfach zu beschreiben, aber wenn man das Prinzip verstanden hat ist klar wie es laufen muss