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
  HTTP-Server lesen / SIM800l AT+HTTPREAD uk1408 1 99 22.02.2018 19:25
Letzter Beitrag: georg01
  Keyboard.h soll variable "schreiben" Fizzo61 4 174 16.02.2018 16:06
Letzter Beitrag: MicroBahner
  Floatwerte in eEPROM schreiben/lesen Diskusguppy 1 326 28.12.2017 20:38
Letzter Beitrag: Tommy56
  Matlab und Arduino verbinden und Anal. Wert lesen Nextero 13 600 12.12.2017 20:07
Letzter Beitrag: GuaAck
  Statusänderung auf SD-Karte schreiben querkopf71 12 910 27.11.2017 12:23
Letzter Beitrag: Tommy56
  RS485 Modbus lesen und Ladegerät regeln Stromsparer 18 2.437 18.07.2017 19:09
Letzter Beitrag: Binary1
  EEPROM ardun 3 655 13.04.2017 10:10
Letzter Beitrag: Bitklopfer
  POP 3 Mails lesen Agotto 1 622 19.02.2017 14:44
Letzter Beitrag: rkuehle
  Variable über EEPROM in ein Script einbinden... Badger1875 5 1.023 01.01.2017 15:08
Letzter Beitrag: Tommy56
  Data Logger Daten auf SD Card schreiben Crichton 12 1.620 22.11.2016 18:32
Letzter Beitrag: Crichton

Gehe zu:


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