Arduino Forum

International => Deutsch => Topic started by: 123_Gamesoft on Jul 12, 2019, 05:41 pm

Title: Wert in Variable beibehalten (Puffer?)
Post by: 123_Gamesoft on Jul 12, 2019, 05:41 pm
Moinsen Wissende,

Ich hätte mal eine Frage und zwar wollte ich bei einem Arduino den Analogwert einer Variable Nach dem Ausschalten beibehalten ohne dass ich den Arduino mit Strom versorgen muss. Hatte mir eine Pufferbatterie vorgestellt. Ist das irgendwie realisierbar?

Gruß
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: gregorss on Jul 12, 2019, 05:46 pm
Ich hätte mal eine Frage und zwar wollte ich bei einem Arduino den Analogwert einer Variable Nach dem Ausschalten beibehalten ohne dass ich den Arduino mit Strom versorgen muss. Hatte mir eine Pufferbatterie vorgestellt. Ist das irgendwie realisierbar?
Der Arduino verfügt über ein EEPROM. Speichere den Wert dort.

Gruß

Gregor

PS: Evtl. hilft das hier (http://html.szaktilla.de/arduino/5.html).
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: postmaster-ino on Jul 12, 2019, 06:05 pm
Hi

Nur solltest Du den Wert nicht hundert Mal die Sekunde speichern - oder zumindest nur speichern, wenn sich Dieser geändert hat, da das EEprom eine begrenzte Schreib-Zyklenzahl hat.
Damit Das nicht stört, als Erstes die 'Adresse' abspeichern, wo der aktuelle Wert zu finden ist und Diesen von Dort auslesen.
Wenn der neue Wert gespeichert werden soll, Diesen an diese Adresse schreiben und zur Kontrolle zurück lesen - ist der gelesene Wert ungleich dem Geschriebenem, wird diese EEprom-Zelle tot sein.
Dann kannst Du 'Adresse + 1, erneuten Schreibversuch' durchführen - Dieser wird nun gelingen, da an der neuen Adresse noch nicht so oft geschrieben wurde.
Wenn Du damit bis an die letzte Adresse vorgestoßen bist, hat das Steinchen auch genug gearbeitet und darf in Frieden ruhen :) (soll heißen: Das dauert Ewig)

MfG
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 123_Gamesoft on Jul 12, 2019, 08:52 pm
perfekt :)
Der wert ändert sich vielleicht alle paar Tage mal
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: Deltaflyer on Jul 13, 2019, 12:09 am
Guter Hinweis postmaster-ino.
Nur; der To sagte, er wolle , dass der wert der Variable beim ausschalten speichern will. ich glaube nicht,
dass er den arduino 'mehrere hundert mal pro sekunde' aus- und wieder einschaltet.

Kann ein Arduino überhaupt mehrere hundert mal pro sekunde neu starten?

Aber es ist natürlich gut. dass der TO erfährt, dass er aufpassen muss, den EEprom nicht zu oft zu beschreiben.

LG Stefan
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: postmaster-ino on Jul 13, 2019, 09:39 am
Hi

Da der Arduino selber zum Arbeiten Strom braucht, müsste man das Aus-Gehen zeitlich vom Aus-Schalten trennen - dieser Aufwand wird astronomisch höher, als bei Änderung des Wert (was laut TO nur ein paar Mal am Tag passiert) Diesen im EEprom zu verewigen.
Die Adress-Zelle wird nur so oft beschrieben, wie das EEprom Adressen hergibt - Da sehe ich keine Lebenszeitprobleme.
Die Zelle, auf Die die Adresszelle zeigt so oft, bis das Lese-Ergebnis nicht mehr mit dem Schreib-Ergebnis übereinstimmt - bei Fehler wird die nächste Adresse im Adress-Zeiger geschrieben und der Speicherversuch erneut angestoßen.
Wenn Das '1x rund läuft' - also alle Speicherstellen platt sind und nur noch der Adress-Zeiger funktioniert, versagt zwar auch diese Strategie, aber der Arduino wird auch dafür wohl einige Jahre gebraucht haben.
Dann können wir in der Version 2 ein FRam einplanen, 512 BYTE (4kBit - die Größenangabe ist in BIT) gibt's im DIP-Gehäuse, beliebig oft/schnell beschreibbar, Datenerhalt bei Stromausfall - die Vorteile von RAM und ROM kombiniert.
Dort müssen wir dann auch nicht die Schreibzugriffe verteilen, da das Steinchen, laut Hersteller, ewig hält - und außerdem schneller als ein EEprom ist - keine Wartezeit zur Übernahme der Daten nötig. Gibt's als Serial in I²C/SPI oder Parallel (was aber 'Beinchen ohne Ende' braucht) in affenartigen Geschwindigkeiten.

MfG
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 123_Gamesoft on Jul 13, 2019, 10:02 am
Nene also es ist ein Schwellwert den ich mit Zwei Tastern einstelle also wird hunderte male in der Sekunde schwierig. Und dieser Schwellwert ändert sich ab und an Mal.
Hab ich das richtig verstanden dass jeder neue Wert in einer neuen Adresse gespeichert wird ? Wenn ja gibt es dann eine Möglichkeit eine Adresse zu nutzen und jeden neuen wert auf den neuen zu überschreiben, dass ich immer nur einen Wert habe?
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: gregorss on Jul 13, 2019, 10:04 am
Nur; der To sagte, er wolle , dass der wert der Variable beim ausschalten speichern will.
Nein. Lies noch einmal.

Kann ein Arduino überhaupt mehrere hundert mal pro sekunde neu starten?
Wieso sollte man den Arduino nicht hundert mal pro Sekunde ein- und ausschalten können?

Gruß

Gregor
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: gregorss on Jul 13, 2019, 10:10 am
Hab ich das richtig verstanden dass jeder neue Wert in einer neuen Adresse gespeichert wird ? Wenn ja gibt es dann eine Möglichkeit eine Adresse zu nutzen und jeden neuen wert auf den neuen zu überschreiben, dass ich immer nur einen Wert habe?
Nein, an welcher Adresse Dein Wert gespeichert wird, gibst Du beim Speichern an. Wenn sich der Wert nur ab und zu mal ändert, kannst Du ihn einfach immer an Adresse 0 speichern.

Das EEPROM ist lt. techn. Daten für mindestens 100.000 Schreibvorgänge spezifiziert. Wenn Du den Wert also nur 1 mal am Tag änderst, hält das EEPROM voraussichtlich 100.000 Tage (> 273 Jahre).  Wenn Du stündlich speicherst, hält das EEPROM über 10 Jahre.

Gruß

Gregor
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: Rentner on Jul 13, 2019, 01:35 pm
Hallo,

Dennoch kann es passieren das Dein Analogwert häufig um ein Bit kippt , 100,101, 100 usw. Wenn Du dann jedesmal ins Eprom speicherst ist das auch nicht gut. Also erst speichern wenn die Differenz >2 ist.

Heinz
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: gregorss on Jul 13, 2019, 02:01 pm
Dennoch kann es passieren das Dein Analogwert häufig um ein Bit kippt , 100,101, 100 usw. Wenn Du dann jedesmal ins Eprom speicherst ist das auch nicht gut. Also erst speichern wenn die Differenz >2 ist.
Das halte ich für Sprücheklopferei. Bei meinen EEPROMs ist noch nie ein Bit gekippt. Nicht mal ein halbes und auch nicht „ein bisschen".

Gruß

Gregor
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: ElEspanol on Jul 13, 2019, 02:45 pm
Nicht das Eeprom kippelt, sondern der adc Wert. Wenn man dann nach jedem kippeln speichert, sind das viele Schreibvorgänge.
Aber es soll ja nicht der kippelnde adc gespeichert werden, sondern der Sollwert, der über Taster eingestellt wird.
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 123_Gamesoft on Jul 13, 2019, 03:35 pm
Beim Analogwert habe ich mich falsch ausgedrückt!
Es sind zwei Taster mit dem ich ein Analogwert Simuliere
Aber das macht denke ich keinen Unterschied oder ?
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: gregorss on Jul 13, 2019, 03:52 pm
Beim Analogwert habe ich mich falsch ausgedrückt!
Es sind zwei Taster mit dem ich ein Analogwert Simuliere
Aber das macht denke ich keinen Unterschied oder ?
Es kommt allein darauf an, was Du im EEPROM speicherst. Wenn sich der zu speichernde Wert selten ändert, und Du nur dann speicherst, wenn es einen neuen Wert gibt, hält das EEPROM schier ewig. Du kannst alternativ die Funktion

EEPROM.update(adr, val)

benutzen. Dann wird der Wert nur geschrieben, wenn er anders ist als der Gespeicherte.

Gruß

Gregor
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 4711 on Jul 13, 2019, 04:49 pm
Darf ich hier mal einhaken, wenn ich einen Wert habe der sich jede Sekunde ändern kann (Counter).
Dann wird das EEprom wohl nicht der passende Speicherort sein.
Wenn ich diesen Wert allerdings nur sichern möchte für den Ein/Ausschalt - Zustand ja aber verm. nicht beim Stromausfall, also einfach Stecker ziehen.
Welche Möglichkeit habe ich dann mehrere Werte persistent zu sichern?
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: combie on Jul 13, 2019, 05:20 pm
Quote
Welche Möglichkeit habe ich dann mehrere Werte persistent zu sichern?
NVRAM / FeRAM
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: postmaster-ino on Jul 13, 2019, 09:37 pm
Hi

Wenn dieser Zählerwert das EINZIGE ist, was Du im EEprom unterbringen willst, kannst Du Das ebenso mit einer Adresse machen und so lange auf dieses Adress-Feld schreiben, bis Das tot ist.
Dann 'einen weiter hinten' die gleiche Prozedur.
Bei sekündlichem Schreiben hält der erste Adressbereich 100'000 Sekunden oder 27,7 Stunden.
Knapp einen Tag also.
Wenn Du jetzt noch berechnest, wie viele Bereiche Du im EEprom unter bekommst (wird ja wohl mehr als ein Byte sein, was Du speichern müsstest), und die EEprom-Größe dadurch teilst, hast Du die Lebenserwartung in Tagen bei 24 Stunden Laufzeit pro Tag.

Wenn Du statt FeRAM nach FRam suchst, kommt zumindest auf eBay mehr.
Ein FRam kannst Du beschreiben wir ein RAM, Daten bleiben erhalten wie in einem EEprom, gibt's (mindestens) als I²C, SPI, Parallel.
Die 4kbit (Angaben in kilo Bits = 512 Byte, also Wert durch 8) gibt's im DIL Gehäuse.
Nicht viel Platz, aber für wenige Werte durchaus eine Überlegung wert.

MfG
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 4711 on Jul 14, 2019, 08:21 am
Danke Jungs!
der Adruino Uno mit Atmega328P hat 1kb = 1024Bit EEProm
ein unsigned long hat 32 Bit, das wären 32 Adressbereiche
wenn nun 1h am Tag jede Sekunde ein Wert darauf geschrieben wird sind das 60x60=3600 Zyklen
wenn ein Adressbereich 100.000 Zyklen hält wäre das dann 27,8 Tage
bei 32 Bereichen dann 888,9 Tage = 2,34 Jahre
dann nehmen wir an, dass nicht  jeden Tag sondern nur jeder 4. Tag ein aktiver ist, dann schon fast 10 Jahre

... wenn diese Berechnung richtig ist, sollte das genug sein, auch für 2 Variablen...
muss man sich dann aber merken auf welchen Bereich man gerade schreibt? oder prüft man wieder alle durch nach dem Power on?

bei einem Fram Modul werden I/O's belegt. Wenn ein Display auf I2C hängt, kann nicht gleichzeitig ein anderes angeschlossen werden, ist das richtig? SPI und Parallel sagt mir noch nichts.
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: Deltaflyer on Jul 14, 2019, 09:21 am
I2c-Module 'hören' immer auf eine eindeutige Adresse. Unterschiedliche Module haben unterschiedliche Adressen.
Bei vielen Modulen und Sensoren (nicht bei allen)mit I2C hast Du die Möglichkeit die Adresse durch zu setzende Lötbrücken in einem gewissen Bereich einzustellen, wodurch Du mehr als ein Modul selben Typs am I2C betreiben Kannst.
Mit SPI hab ich mich noch zuwenig auseinander gesetzt, zumindest von der Programierung her, aber soweit ich weiss, können auch bei SPI mehrere Module angeschlossen werden, dazu wird dann aber für jedes Modul eine CS Leitung (Chip Select) benötigt, um das gerade anzusprechende Modul auszuwählen Das Heist , du brauchst im Prinzip für jedes am Arduino angeschlossene SPI-Modul zusätzlich noch nen Digital Pin vom Arduino.

LG Stefan
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: noiasca on Jul 14, 2019, 10:06 am
FRAM ... sicher nett wenn man es zu hause hat.
aber zum Abspeichern bei Powerdown, würden da nicht auch eine Dioden und ein kleiner Puffer-Elko in der Versorgungsspannung und eine Widerstand zu einem Analog-Eingang reichen?

D1/C1 zum Puffern
R1 damit man an/unter Vref kommt

(https://forum.arduino.cc/index.php?action=dlattach;topic=626026.0;attach=316269)
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: combie on Jul 14, 2019, 10:34 am
Quote
und eine Widerstand zu einem Analog-Eingang reichen?
Ein Spannungsteiler wäre sinnvoller.
Und Anschluss, nicht an den ADC sondern an den AC

Aber Grundsätzlich:
Ja, der richtige Ansatz.
(zumindest kein ganz falscher)



Quote
der Adruino Uno mit Atmega328P hat 1kb = 1024Bit EEProm
Falsch, der UNO hat ein 8192 Bit EEPROM.


Quote
bei einem Fram Modul werden I/O's belegt. Wenn ein Display auf I2C hängt, kann nicht gleichzeitig ein anderes angeschlossen werden, ist das richtig?
Ein Irrtum!
Links:
I2C Spezifikation (http://www.nxp.com/documents/user_manual/UM10204.pdf)
I2C Bus Pullup Resistor Calculation (http://www.ti.com/lit/an/slva689/slva689.pdf)
I2C Level Shifter (https://www.nxp.com/docs/en/application-note/AN10441.pdf)
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: noiasca on Jul 14, 2019, 10:42 am
Ein Spannungsteiler wäre sinnvoller.
Und Anschluss, nicht an den ADC sondern an den AC
nicht verstanden.
AC ist für dich was?

Wenn ich einen externen Spannungsteiler mache dann könnte ich das Signal aber auch gleich wieder auf einen Digitaleingang legen. Aber ok, wo ein Widerstand in der Bastlerkiste liegt, wird wohl auch ein zweiter liegen...
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: combie on Jul 14, 2019, 10:57 am
Quote
AC ist für dich was?
Der eingebaute Analog Komparator.
Geradezu ideal für solche Spielchen.
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 4711 on Jul 14, 2019, 06:49 pm
Sind die 100.000 schreib und lese Zyklen, d.h. jede Aktion ob lesen oder schreiben verringert die Lebensdauer?
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: noiasca on Jul 14, 2019, 06:57 pm
immer wenn Bits gesetzt werden.

Quelle: https://github.com/PRosenb/EEPROMWearLevel (https://github.com/PRosenb/EEPROMWearLevel)
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 4711 on Jul 14, 2019, 07:05 pm
d.h. das lesen macht nichts, egal wie oft
habt ihr einen eleganten Sketch für schreiben und überwachen, im Fehlerfall nächste Adresse?
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: postmaster-ino on Jul 14, 2019, 07:32 pm
Hi

Ne, aber der Ansatz ist doch denkbar einfach.
Adresse 0: Die Adresse des Nuzbyte.
Du liest also Adresse 0 und weißt, wo Dein Datenwert im EEprom gerade steht.
Diesen liest Du aus, spielst damit, what_ever.
Nun ändert sich dieser Wert, soll also möglichst zeitnah gesichert werden.
Also schreibst Du diesen Wert an die aktuelle Adresse.
Dann liest Du diesen eben geschrieben Wert zurück und vergleichst beide Werte.
Wenn identisch: passt, wir sind fertig.
Wenn ungleich: Speicherstelle tot, Adress-Counter erhöhen (+1) und speichern (Adresse 0) und den zu speichernden Wert an die nun neue Adresse speichern.
Wieder auslesen, prüfen, ob identisch, ja-> passt
Ein Nein sollte hier nicht vorkommen, da diese Speicherstelle noch jungfräulich ist, wenn doch, kannst Du aber auch Diese überspringen - dieser Passus sollte aber bei der Entwicklung tunlichst geprüft werden, sonst hast Du - ggf. Aufgrung Timing.Probleme, zig Speicherstellen tot erkannt, obwohl Du nur zu ungedultig warst ... oder so.

MfG
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: Tommy56 on Jul 14, 2019, 07:45 pm
Ich sehe in dieser Vorgehensweise einen größeren Denkfehler:

Wenn ich schon mehrere Inhalts-Speicherzellen mit ihren maximal erreichbaren Schreibzyklen "verbrannt" habe, dann ist die Zelle 0 in der die Adresse gespeicher wird wohl schon lange tot, die in die wird mit der Summe der Zellenzugriffe geschrieben.

Dann sollte man dann lieber gleich einen FRAM nehmen.

Gruß Tommy
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 4711 on Jul 14, 2019, 07:51 pm
Kann dem geschriebenen Wort nicht folgen ?
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: noiasca on Jul 14, 2019, 07:57 pm
Tommy, Post meint wenn die ZIEL Zelle sich nicht mehr ändert, DANN die Adress-Zelle hochzählen.
D.h. die Adress-Zelle ändert sich erst nach "rund 100.000", wenn also die erste Ziel-Zelle ausgefallen ist. Zumindest hätte ich ihn so verstanden.

Tun würd' ich es auch nicht so, wenn dann einen Ringspeicher wie Atmel auch vorschlägt, irgendwo gabs da deine AN...

Edit: diese da http://ww1.microchip.com/downloads/en/AppNotes/doc2526.pdf (http://ww1.microchip.com/downloads/en/AppNotes/doc2526.pdf)
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 4711 on Jul 14, 2019, 08:15 pm
Danke - karma

Ich verstehe die Vorgangsweise, es in einen sauberen Sketch umzuwandeln, dazu fehlt mir noch etwas Knoff Hoff.
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: Tommy56 on Jul 14, 2019, 08:26 pm
Tommy, Post meint wenn die ZIEL Zelle sich nicht mehr ändert, DANN die Adress-Zelle hochzählen.
Ok, danke. Das war dann mein Verständnisfehler.
Ich würde aber dann doch lieber einen FRAM nehmen. Ich habe mal den EEPROM von der DS3231 runter gelötet und da einen FRAm drauf. Funktioniert prima.

Gruß Tommy
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: noiasca on Jul 14, 2019, 08:44 pm
Ich verstehe die Vorgangsweise, es in einen sauberen Sketch umzuwandeln, dazu fehlt mir noch etwas Knoff Hoff.
pseudo:
eeprom.get Adressspeicher, Zieladresse
eeprom.put Zieladresse, neuerWert
eeprom.get Zieladresse, tempWert
Wenn tempwert != neueWert
{
  Zieladresse++
  eeprom.put Adresspeicher, Zieladresse
  eeprom.put Zieladresse, neuerWert
}

evtl. das Schreiben/lesen/vergleichen in eine Funktion auslagern damit man sie rekursiv aufrufen kann.

So wie immer, Google ist dein Freund und findet sicher was fertiges:
https://www.google.com/search?client=firefox-b-d&q=arduino+eeprom+wear+leveling (https://www.google.com/search?client=firefox-b-d&q=arduino+eeprom+wear+leveling)

Andererseits, wenn ich mir wegen 100.000 sorgen machen muss ... dann überleg ich mir was anderes
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: postmaster-ino on Jul 14, 2019, 10:27 pm
Hi

Klar könnte man auch eine Ring-Speicher nehmen - aber auch Da müsste ich mir merken, WO ich denn überhaupt bin - die toten Zellen davor können ja 'was weiß ich denn' enthalten und bieten mir so keine Grundlage, wo mein aktueller Wert nun zu finden ist.
Alternativ jede 'vorherige' Zelle mit dem Standard-Wert (meine EEprom wäre 255) 'aus-x-en' und schauen, ob ich irgendwo 'was Anderes als 255er finde'.
Blöd, wenn das zuerst gespeicherte Byte 255 sein sollte - dann finde ich Das wieder nicht oder gehe fälschlicher weise davon aus, daß Das ein unbenutzter Bereich ist.

Da gefällt mir 'meine Methode' besser - eine Adresse (Die NUR geändert wird, wenn die Ziel-Zelle platt ist) und eine Ziel-Adresse.
Wenn Schreiben erfolgreich, fertig, sonst Adresse+1 und erneuter Aufruf.
Wenn wir uns hier in einer Endlosschleife befinden, ist das EEprom rundherum platt und der Arduino hat Seine Aufgabe mit Auszeichnung vollbracht.
... wenn's dann noch Strom gibt ...

MfG
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: 4711 on Jul 16, 2019, 08:21 am
Ringpuffer - braucht 2 Speicherbereiche, 1. für die Daten, 2. für den Zeiger
Wenn man das dann laufen lässt müsste eigentlich noch ein 3. und 4. hinzukommen, für die defekten Bereiche im Speicherbereich und im Zeigerbereich. Aufteilung des Speicher wird schon interessant.
Wenn nur 1 Zelle tot ist, sollte nicht gleich das ganze System tot sein, wäre meine Meinung dazu.
Damit wird das übertrieben kompliziert und auch Fehleranfällig und benötigt viel Sketch.
Meiner Meinung sicherlich die bessere Wahl für die Lebensdauer, aber unnötig.
Dann wäre mein Schritt zum FRAM.

Meine Entscheidung zum EEPROM wäre nun so lange die Zelle zu beschreiben bis sie tot ist, dann die nächste und nach Stromausfall muss das Ende gesucht. Einmaliges Nullen wäre verm. notwendig, das könnte mit einem Initialisierungs-Sketch gelöst werden, der dann wieder überschrieben wird.

Ist meine These korrekt?

Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: noiasca on Jul 16, 2019, 08:45 am
Google etwas zu dem Thema.
Zusammengefasstes Halbwissen: Atmel gibt eine beschränkten Schreibzyklus an X Schreibeoperationen innerhalb der gewährleistet ist, dass der gespeicherte Wert eine Dauer von T gehalten werden kann/wieder gelesen werden kann. Das unmittelbare Lesen nach einem Schreiben gewährleistet nicht, dass der Wert auch viel später wieder gelesen werden kann. D.h. die Zelle ist eigentlich schon lange "ausgelatscht" bevor du es mit einer unmittelbaren Lesung auf Korrektheit kontrollieren kannst.

Ein Ringspeicher - so wie in der AN2526 - verteilt die genutzten Daten eben auf die (fast) ganze EEPROM Kapazität und verlängert somit die Nutzbarkeit des EEPROM.

Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: Tommy56 on Jul 16, 2019, 12:01 pm
Einmaliges Nullen wäre verm. notwendig, das könnte mit einem Initialisierungs-Sketch gelöst werden, der dann wieder überschrieben wird.

Ist meine These korrekt?
Der initiale Inhalt ist 0xff. Das kann man durchaus beibehalten.

Gruß Tommy
Title: Re: Wert in Variable beibehalten (Puffer?)
Post by: postmaster-ino on Jul 16, 2019, 07:13 pm
Hi

Solange der Arduino läuft, kann ich ja jederzeit die aktuelle Adrersse - oder besser, Deren Inhalt, auslesen und mit dem im RAM gehaltenen Wert vergleichen.
Klar: Ob Das nach dem nächsten Stromausfall auch noch klappt ...
Kommt halt drauf an, wie oft was geschrieben werden würde - für unbenutztes EEprom gibt's halt ebenfalls kein Geld zurück.

MfG