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
  Matlab und Arduino verbinden und Anal. Wert lesen Nextero 13 175 12.12.2017 20:07
Letzter Beitrag: GuaAck
  Statusänderung auf SD-Karte schreiben querkopf71 12 602 27.11.2017 12:23
Letzter Beitrag: Tommy56
  RS485 Modbus lesen und Ladegerät regeln Stromsparer 18 2.098 18.07.2017 19:09
Letzter Beitrag: Binary1
  EEPROM ardun 3 479 13.04.2017 10:10
Letzter Beitrag: Bitklopfer
  POP 3 Mails lesen Agotto 1 462 19.02.2017 14:44
Letzter Beitrag: rkuehle
  Variable über EEPROM in ein Script einbinden... Badger1875 5 931 01.01.2017 15:08
Letzter Beitrag: Tommy56
  Data Logger Daten auf SD Card schreiben Crichton 12 1.311 22.11.2016 18:32
Letzter Beitrag: Crichton
  Serial Monitor ASCII 1 schreiben BennIY 11 1.710 01.08.2016 16:42
Letzter Beitrag: Mathias
  String in EEPROM Speichern BennIY 2 1.271 27.06.2016 10:23
Letzter Beitrag: BennIY
  Grundlagenfrage EEPROM Tobias1984 3 977 14.04.2016 10:43
Letzter Beitrag: Bitklopfer

Gehe zu:


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