Grundsatzfrage: Letzten Zustand beim Einschalten wiederherstellen

Hallo,

Lichtsteuerung mal wieder: Es ist mittlerweile so komplex geworden, dass man nicht mehr ohne weiteres von Hand einen einmal eingestellten Effekt rekonstruieren kann. Also soll der letzte Zustand (=n Variablen) permanent in einen nichtflüchtigen Speicher geschrieben werden (ohne SaveNOW Taste). Realistisch/ausreichend wäre 1 Mal pro Minute. Nach dem Anschalten soll es mit den letzten Variablenwerten weitergehen. An den EPROM traue ich mich nicht ran, weil man ihn nur endlich oft wiederbeschreiben kann. SD Karte? Die kann man zumindest tauschen, wenn sie "verbraucht" ist. Es müsste auch schnell/"im Hintergrund" passieren, damit die LED Ausgabe nicht stockt.

Vorschläge?

Gruß

Helmuth

Hallo,
manche RTC´s haben einen Speicher dafür. SD wäre die erste Wahl. Du könntest auch jeder Zeit nachträglich, extern, nachschauen was denn
abgelaufen ist. “So ein LichtDatenLogger eben?”
Gruß und Spaß
Andreas

SD ist problematisch, wegen SPI. Beißt sich mit FastLED. Jedenfalls habe ich es noch nie in einem Sketch zum Laufen bekommen, ohne die LEDs neu zu initialisieren.

Grüße

Helmuth

Eine schöne Alternative ist ein externes FRAM. Die gibt es billig von Ramtron: http://www.elv.de/ic-fm24c04.html http://www.elv.de/ic-fm-24c16.html

FRAMs vereinen die Geschwindigkeit und Robustheit von RAM mit der Nicht-Volatilität eines EPROMs. Die Dinger haben über 10 Milliarden Schreib/Lese-Zyklen! Kann man einfach über I2C ansteuern.

Datenblatt: http://www.elv-downloads.de/Assets/Produkte/2/236/23632/Downloads/23632_FM24C16_data.pdf (wobei die 4k Version für dich reicht)

hi, helmuth,

versteh' ich jetzt nicht ganz...

ergibt sich ein zustand von alleine, durch berechnungen, oder mußt Du die parameter von hand ändern? falls von hand, mußt Du doch nur einmal nach der änderung speichern und nicht jede minute. dann kannst Du auch locker das eeprom nehmen...

gruß stefan

@Eisebaer: Hi Du, der Zustand ergibt sich durch die Wechselwirkung von ca. 50 Variablen, welche momentan direkt oder indirekt über 6 Potis einstellbar sind. U.a. LFOs, welche Wertebereiche und Änderungsgeschwindigkeit anderer Variablen definieren. Und LFOs welche LFOs steuern, usw. Ich setzte da gern mal jemanden ran, der von Technik/Menüführung/Programmierung keine Ahnung hat und intuitiv rumspielt - da kommen regelmäßig Effekte raus, die ich so noch nie gesehen haben / von denen mir nicht auf den ersten Blick klar ist, wie sie eigentlich entstehen. Man stelle sich die Situation nach einer Party vor: LED Effekt sieht saugeil aus, aber man ist gerade nicht klar genug im Kopf, um nachzuvollzihen, was abgeht. Also einfach ausschalten und morgen früh alle Variablen protokollieren und als neuen Preset speichern.

@Serenifly: FRAM klingt nach dem, was ich suche, schau ich mir mal genauer an.

Beste Grüße

Helmuth

Ich weiss nicht, wie Deine Lichtsteuerung aussieht, aber selbst wenn Du's nicht hinkriegst, die Werte nur bei einer Änderung zu schreiben (wie Eisbaer das vorgeschlagen hat), kannst Du jede Minute einfach die Werte aus dem EEPROM auslesen (die Lesezugriffe sind nicht begrenzt), mit den aktuellen vergleichen und nur bei einer Differenz neu speichern. Wenn Du nicht wirklich durchgehend Änderungen hast, die gespeichert werden müssen, sollten die gut 100'000 Schreibzyklen, die ein EEPROM verkraften müsste, sehr lange reichen.

Hmm, vielleicht wäre ein (versteckter) SaveNOWtoEEPROM Taster wirklich die einfachste Lösung. Änderungen ergeben sich nur, wenn jemand am Poti gedreht hat. Die Leute kommen da (unbelastet von einem grundsätzlichen Verständnis der Materie) manchmal auf Kombinationen, die mir nie einfallen würden. Sie spielen einfach und das macht es sehr kreativ. Oder man speichert halt nur einmal pro Stunde ins EEPROM.

Ich weiss noch nicht, wie Deine Schaltung aussieht, aber wenn es wirklich Potis sind, dann musst Du doch gar nichts sichern, die Potis verändern ihre Stellung ja nicht und somit ist die Sicherung in Hardware bereits gemacht.

Inwiefern ein versteckter Taster notwendig sein soll, entzieht sich immer noch meiner Kenntnis. Würdest Du uns darüber aufklären, was bei Deiner Anwendung so speziell ist, dass die vorgeschlagenen Varianten nicht funktionieren sollen?

hi,

Man stelle sich die Situation nach einer Party vor: LED Effekt sieht saugeil aus, aber man ist gerade nicht klar genug im Kopf, um nachzuvollzihen, was abgeht.

Du sollst ja auch nicht auf parties gehen und bechern, sondern saubere elektronische arbeit abliefern...

tststs, die jugend heute...

gruß stefan

Hey pylon die Schaltung ist simpel: 6 Potis an 6 Analogeingängen. ABER: In Abhängigkeit von Poti 1 ändert sich die Belegung von Poti 2-6 usw. Ich habe schon darüber nachgedacht, das alles mit Drehencodern zu machen mit jeweils einem LED Kranz drumrum, um zumindest die aktuellen Werte zu visualisieren. So wird das jedenfalls bei Audio-Synthesizern gemacht, wo auch eine große Zahl von Variablen mit einer begrenzten Anzahl von physikalischen Reglern verändert werden muss. Hier z.B. http://lividinstruments.com/images/code_v2_front.jpg Sorry, ich schweife ab. Speziell an der Anwendung ist, dass sie "hooliganproof" sein soll. Ich mag es, da "unwissende" Leute in verschiedensten Bewusstseinszuständen ranzulassen, und zu schauen, was passiert. Und softwaretechnisch alles abzufangen, was mit Black-/Whiteout endet... Stell es Dir als interaktive Partyinstallation vor, wo ich die Chance habe, am nächsten Tag nachzuvollziehen, was die Leute gemacht haben. Entweder, weil ich im richtigen Moment hingesehen und gespeichert habe - oder eben, weil es einen Autosave gibt.

@Eisebaer: "Jugend"?! Mit 36? Danke für die Blumen! :-)

Wenn du immer nur den letzten Zustand speichern willst, kannst du den Verlauf aber auch nicht nachvollziehen. Da macht jemand einen guten Effekt und er wird gleich wieder überschrieben.

Stell es Dir als interaktive Partyinstallation vor, wo ich die Chance habe, am nächsten Tag nachzuvollziehen, was die Leute gemacht haben. Entweder, weil ich im richtigen Moment hingesehen und gespeichert habe - oder eben, weil es einen Autosave gibt.

Das ist eine ganz andere Ausgangslage, denn hier willst Du ein Log über den Abend haben, vorher sprachen wir "nur" über das Erhalten des Zustands über das Ausschalten hinweg. Ich bin immer noch der Meinung, dass bei 6 Potis an den Analog-Eingängen das Erhalten des Zustands über einen Power-Cycle hinweg erhalten bleibt, sofern niemand an den Potis dreht. Ein Drehen wäre ja aber einer Bedienung gleichzusetzen und somit wäre ein gespeicherter Zustand sofort hinfällig, weil der Benutzer ja eine andere Eingabe gemacht hat. Korrigiere mich, wenn ich weiterhin etwas falsch verstanden habe. Hast Du denn weitere Eingabemöglichkeiten als die 6 Potis? Oder muss man die Stellung der 6 Potis mit einem Taster bestätigen?

Korrigiere mich, wenn ich weiterhin etwas falsch verstanden habe. Hast Du denn weitere Eingabemöglichkeiten als die 6 Potis? Oder muss man die Stellung der 6 Potis mit einem Taster bestätigen?

Nein lieber Pylon,

weder noch. Es ist ein Menü gesteuert ausschließlich über 6 Potis. Mit dem ersten Poti wählst Du eine Menüebene aus. 10 davon im Moment. In Abhängigkeit davon, werden die restlichen 5 Potis Variablen zugewiesen. Z.B. Poti 2 = Masterspeed. Du stellst den Speed ein und wechselst über Poti 1 zu einem anderen Menüpunkt. Jetzt wird Poti 2 mit einer anderen Variable verknüpft, z.B. Max_Red. Jetzt stimmt Variableninhalt und Potistellung aber nicht mehr überein (außer Du drehst daran). Es werden nur Änderungen erfasst, nicht die Absolutstellung. (weil sonst allein beim Menüblättern jeweils 5 Werte geändert würden).

Nur auf die Potis schauen reicht also nicht, weil die nur 5/50 Variablen abbilden.

Und ja, Ausgangsproblem war, nach anschalten das Gleiche zu sehen, wie nach dem Ausschalten und ein guter Kompromiss ist, jede Stunde ein Variablendump zu schreiben und das beim Anschalten als erstes zu lesen.

Gruß

Wieso einen Kompromiss eingehen? Wenn man so etwas programmiert, dann sollte man keine Kompromisse eingehen. Die Idee mit Änderungen abfragen, und nur bei Änderung schreiben finde ich zum Beispiel echt gut, und da kann man schon sehr weit damit kommen. Einmal pro Stunde ist ärgerlich, wenn genau der Stromausfall ist, wenn man einen super Effekt hatte, und den nicht mehr hinbekommt. Oder das externe FRAM, dann muss man sich wirklich keine Sorgen um die Haltbarkeit machen. Die kannte ich so noch gar nicht als eigene Bausteine, kannte FRAM bisher nur in den neueren MSP430 integriert. Werde damit vieleicht auch mal spilen. Aber zurück zum Thema. Wenn man etwas tolles schafft, dann sollte man sowenig Kompromisse wie möglich eingehen.

Danke für die Ermahnung zur Konsequenz! (y)