INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Ins eeprom schreiben/lesen
06.02.2016, 16:53
Beitrag #9
RE: Ins eeprom schreiben/lesen
Hallo awo,

irgendwie scheint das Problem ja gelöst oder nicht mehr wichtig zu sein, da so lange hier nichts mehr geschrieben wurde.
Um aber eine Antwort auf deine letzte Frage bzgl. "update" zu geben, damit andere, die eine ähnliche Fragestellung haben, weiterkommen: JA, es wird nur zurückgeschrieben, wenn sich der Wert der geschrieben werden soll, vom vorhandenen Zellwert abweicht (eben halt update anstelle write).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.02.2016, 19:21
Beitrag #10
RE: Ins eeprom schreiben/lesen
(06.02.2016 16:53)rpt007 schrieb:  Hallo awo,

irgendwie scheint das Problem ja gelöst oder nicht mehr wichtig zu sein, da so lange hier nichts mehr geschrieben wurde.
Um aber eine Antwort auf deine letzte Frage bzgl. "update" zu geben, damit andere, die eine ähnliche Fragestellung haben, weiterkommen: JA, es wird nur zurückgeschrieben, wenn sich der Wert der geschrieben werden soll, vom vorhandenen Zellwert abweicht (eben halt update anstelle write).

Danke!!
Ja das Problem ist gelöst, und alles funktioniert wirklich perfekt Big Grin
Ich verwende die
#include <SoftwareSerial.h>
#include <ArduinoJson.h>
#include <EEPROMex.h>
#include <Bounce2.h>
die Anzahl der benötigent Speicheradressen verwalte ich manuell
Code:
// Speicheradressen der Variablen für EEPROMx
int addrPumpstoesse = 1;
int addrAnzMagnete = 2;
int addrStreckeOelen = 3;
int addrRaddurchmesser = 7;
int addrMultiplikatorRegen = 11;
int addrPumpean = 15;
int addrPumpeoff =17;

bei Programmstart lese ich alles ein
Code:
// Einlesen der Variablen aus dem EEPROM
waitUntilReady();
Raddurchmesser = EEPROM.readFloat(addrRaddurchmesser);      
waitUntilReady();
StreckeOelen = EEPROM.readInt(addrStreckeOelen);        
waitUntilReady();
AnzMagnete = EEPROM.readByte(addrAnzMagnete);                
waitUntilReady();
Pumpstoesse = EEPROM.readByte(addrPumpstoesse);
waitUntilReady();
MultiplikatorRegen = EEPROM.readFloat(addrMultiplikatorRegen);
waitUntilReady();
pumpean = EEPROM.readInt(addrPumpean);
waitUntilReady();
pumpeoff = EEPROM.readInt(addrPumpeoff);

Ich warte bei jeder EEPROM Aktion ab, ob das EEPROM auch ready ist.
Code:
void waitUntilReady() {

  while(!EEPROM.isReady()) { delay(1); }
  
}

Beschreiben des EEPROM über die Serielle Schnittstelle mittels Jason
Code:
// Konfiguration Jason
  if (Serial.available() > 0) {
    String json = "";
    // read the incoming byte:
    //incomingByte = Serial.read();
    json = Serial.readString();
              
    StaticJsonBuffer<200> jsonBuffer;
    JsonObject& root = jsonBuffer.parseObject(json);
    //const char* command    = root["command"];
    String command = root["command"];

Code:
else if (command.equals("setvalues"))
    {
      // Beispiel: c
      if (root.containsKey("raddurchmesser") && root["raddurchmesser"].is<float>()) {
        Raddurchmesser = root["raddurchmesser"];
        waitUntilReady();
        EEPROM.updateFloat(addrRaddurchmesser, Raddurchmesser);
        waitUntilReady();
        Raddurchmesser = EEPROM.readFloat(addrRaddurchmesser);
        Serial.println("Setze raddurchmesser");
      }
      if (root.containsKey("streckeoelen") && root["streckeoelen"].is<int>()) {
        StreckeOelen = root["streckeoelen"];
        waitUntilReady();
        EEPROM.updateInt(addrStreckeOelen, StreckeOelen);
        waitUntilReady();
        StreckeOelen = EEPROM.readInt(addrStreckeOelen);
        Serial.println("Setze streckeoelen: ");
           }
      
      if (root.containsKey("pumpstoesse") && root["pumpstoesse"].is<byte>()) {
        Pumpstoesse = root["pumpstoesse"];
        waitUntilReady();
        EEPROM.updateByte(addrPumpstoesse, Pumpstoesse);
        waitUntilReady();
        Pumpstoesse = EEPROM.readByte(addrPumpstoesse);
        Serial.println("Setze pumpstoesse");
        }
        // Berechnen der Schmierintervalle neu
        schmierintervall();
            
    }
     else if (command.equals("getparam"))
      {
      // Werte als Json zurückliefern ...
      // Beispiel: {"command":"getparam"}
      // Result: {"result":"setparam", "pumpean":245, "pumpeoff":125, "anzmagnete":3, "multiplikatorregen":0.5}
      StaticJsonBuffer<200> jsonOutBuffer;
      JsonObject& root = jsonBuffer.createObject();
      root["result"] = "getparam";
      root["multiplikatorregen"] = MultiplikatorRegen;
      root["pumpean"] = pumpean;
      root["pumpeoff"] = pumpeoff;
      root["anzmagnete"] = AnzMagnete;
      root.printTo(Serial);
      }

lg
Andi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.02.2016, 20:05
Beitrag #11
RE: Ins eeprom schreiben/lesen
Hi Andi,

ich habe zwar bislang nie Probleme mit dem Beschreiben des EEPROMS gehabt, werde aber deine wait-Routine auch bei mir einbauen, man weiß ja nie ;-)

Raimund
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Data Logger Daten auf SD Card schreiben Crichton 12 293 22.11.2016 18:32
Letzter Beitrag: Crichton
  Serial Monitor ASCII 1 schreiben BennIY 11 580 01.08.2016 16:42
Letzter Beitrag: Mathias
  String in EEPROM Speichern BennIY 2 410 27.06.2016 10:23
Letzter Beitrag: BennIY
  Grundlagenfrage EEPROM Tobias1984 3 492 14.04.2016 10:43
Letzter Beitrag: Bitklopfer
  char* inhalt in eine Datei auf SD-Karte schreiben MartinK 0 341 30.03.2016 16:42
Letzter Beitrag: MartinK
  Attempt to write outside of EEPROM memory anwo 1 376 12.02.2016 11:06
Letzter Beitrag: anwo
  Suche Konzept für ein Inhaltsverzeichnis eines EEPROM avoid 0 311 27.01.2016 10:49
Letzter Beitrag: avoid
  Teensy- Tastaturblöcke in Schreiben einfügen Modinox 19 1.386 10.01.2016 19:09
Letzter Beitrag: Modinox
  Pro Mini ADC Kanal 8 lesen Bitklopfer 8 618 30.12.2015 20:27
Letzter Beitrag: Bitklopfer
  float in eeprom goldfisch 4 672 28.12.2015 18:54
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste