Go Down

Topic: Daten nach reset erhalten (Read 2034 times) previous topic - next topic

-Jonas-

Hey leute!

Ich würde gerne Daten, die sich während meinem Programmdurchlauf verändern, nach einem reset des Arduinos noch erhalten haben.

ist das irgendwie möglich?

Grüsse

Jonas

Addi2438

Mit Hilfe des internen EEPROMS des Arduinos würde das gehn.
Wie oft und wann wird den resettet?
Baby Kiwi, what else? :D

-Jonas-

#2
Mar 07, 2015, 10:31 pm Last Edit: Mar 07, 2015, 10:33 pm by -Jonas-
danke, das war schonmal sehr hilfreich! :-)

würdest du due  EEPROM - Library empfehlen?

eeem.

Der Arduino dient als Konsole auf der Einstellungen getroffen werden können. Wenn man ihn halt nicht braucht, dann stellt man ihn ab, um Batterien zu sparen.

"Wie oft und wann?" -> schwierig zu Antworten :D

uwefed

Wenn der Arduino als Konsole diehnt dann hat es selbst keine Daten sondern ist nur ein interface für die Eingabe und Ausgabe. Was soll er denn dann sich merken?
Die Daten müssen von der Anwendung kommen.
Grüße Uwe

agmue

#4
Mar 07, 2015, 10:54 pm Last Edit: Mar 08, 2015, 09:52 am by agmue Reason: EEPROM ersetzen
Hallo, möglicherweise wäre ein externes EEPROM wie 24LC256 (Mitte der Seite) eine Überlegung wert.

Wenn die maximal möglichen Schreibzyklen erreicht sind, kann man ein externes EEPROM leicht ersetzen.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

Chris72622

Ja, die EEPROM Library ist empfehlenswert, da zuverlässig und sehr einfach zu bedienen.

Gruß Chris
Suche PoE Modul für Ethernet Shield

elektron_

#6
Mar 08, 2015, 03:10 pm Last Edit: Mar 08, 2015, 03:10 pm by elektron_
Wie oft und wann wird den resettet?
Hallo,

das ist völlig belanglos, da man das EEPROM beliebig oft lesen kann. Entscheidend ist die Frage wie oft sich die Daten ändern und wie bzw. wie oft die Schreibroutine gestartet wird. Wenn man das so löst daß die Daten mit einem speziellen "save" Kommando sozusagen manuell abgespeichert werden dann habe ich absolut keine Sorgen in Bezug auf das EEPROM. Man könnte das auch automatisieren in dem man z.B. die Daten jedesmal dann ins EEPROM sichert wenn sie sich eine bestimmte Zeit nicht verändern. Zyklisch mit kurzen Taktraten ins EEPROM zu schreiben wäre aber sehr schlechter Programmierstiel, egal ob extern oder intern.

Christian
Elektronik funktioniert intern mit Rauch.
Beweis: Wenn der Rauch herauskommt ist es kaputt...

Addi2438

#7
Mar 08, 2015, 05:03 pm Last Edit: Mar 08, 2015, 05:06 pm by Addi2438
Moin,
ich bin davon ausgegangen, dass er die Daten jedesmal speichern will, bevor der Controller
resettet, desshalb auch die Frage, da sich daraus die Anzahl der Schreibvorgänge ergibt ;).
Baby Kiwi, what else? :D

elektron_

Hallo,

ein interessanter Ansatz, vor dem Reset noch schnell zu speichern. Nur nach meiner Vorstellung wird das mit der Arduino Hardware schwierig. Wenn man auf den Knopf drückt oder die Spannung abstellt dann ist es bereits zu spät. Einzig bei Reset Auslösung per Software (über den Watchdog) könnte das gehen indem man zuerst speichert und dann den WDT nicht mehr zurücksetzt bis er auslöst.

Um etwa bei Spannungsausfall noch schnell zu speichern benötigt man zusätzliche Hardware, z.B. großen Kondensator zur kurzfristigen Pufferung und zusätzliche Erkennung (per Diode o.ä. vom C entkoppelt)

Christian
Elektronik funktioniert intern mit Rauch.
Beweis: Wenn der Rauch herauskommt ist es kaputt...

agmue

Hallo Christian,
aufgrund Deiner Beschreibung ist mir nicht klar, welches Ereignis den Reset auslöst. Knopfdruck, Spannungsausfall ...

Darum zwei Ideen "ins Blaue" ohne Erfahrungen meinerseits:

1. Eine kleine USV mittels Batterie/Akku.
2. Speichern der Daten auf eine SD-Karte (ich höre gerade Musik von einer).
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

-Jonas-

ich habe zwei arduinos. das eine gilt als konsole, das andere ist in einem mobilen fahrzeug. nun möchte ich über die konsole regelparameter des mobilen fahrzeuges einstellen, die nicht verloren gehen dürfe, auch wenn ich beide Arduinos vom strom nehme.

meint ihr das geht, wenn ich einfach immer auf den EEPROM schreibe, wenn ich die parameter verändert habe? oder ist das dann schon viel zu viel?

die idee mit der SD-Karte hatte ich auch schon. nur dachte ich mir, das es da vielleicht eine schon integrierte lösung gibt.

sth77

Wenn du deine Regelparameter vielleicht ein paar hundertmal anpasst, stellt das noch kein Problem dar. Du solltest eben bei der Programmierung darauf achten, dass du nicht permanent auf das interne Eeprom schreibend zugreifst.
Mein verwaister Arduino-Blog: http://www.sth77.de/ - letzter Eintrag: Diamex-ISP in der irgendwann mal aktuellen Arduino-IDE 1.6.4

-Jonas-

OK.

Danke euch!

"An EEPROM write takes 3.3 ms to complete. The EEPROM memory has a specified life of 100,000 write/erase cycles, so you may need to be careful about how often you write to it."

Dann ist wohl das das einzige worauf man achten muss.

Go Up