diff --git a/include/ModbusSlaveConfigToEEPROM.h b/include/ModbusSlaveConfigToEEPROM.h index 322c807..8b90497 100644 --- a/include/ModbusSlaveConfigToEEPROM.h +++ b/include/ModbusSlaveConfigToEEPROM.h @@ -21,11 +21,12 @@ public: private: /* - In diesem Beispiel wird Adresse 0 für die Modbus-ID und Adresse 1 für die Baudrate verwendet. + In diesem Beispiel wird Adresse 0 für die Modbus-ID und Adresse 2 für die Baudrate verwendet. Diese Adressen sind willkürlich gewählt und sollten nicht mit anderen Daten im EEPROM überlappen. */ static const int MODBUS_ID_ADDRESS = 0; // Speicheradresse für Modbus-ID - static const int BAUD_RATE_ADDRESS = 1; // Speicheradresse für Baudrate + static const int BAUD_RATE_ADDRESS = 2; // Speicheradresse für Baudrate + static const int MAX_BAUD_RATE = 38400; // Maximal unterstützte Baudrate static const int MAX_MODBUS_ID_ADDRESS = 254; // Maximal unterstützte Baudrate @@ -55,7 +56,7 @@ void ModBusConfig::SetModbusID(int ID) { if (ID >= 0 && ID <= MAX_MODBUS_ID_ADDRESS) { // Überprüfung, dass ID im gültigen Bereich liegt unsigned long currentTime = millis(); if (currentTime - lastWriteTimeID >= WRITE_INTERVAL) { // Only write if enough time has passed - EEPROM.write(MODBUS_ID_ADDRESS, ID); + EEPROM.put(MODBUS_ID_ADDRESS, ID); lastWriteTimeID = currentTime; } //EEPROM.write(MODBUS_ID_ADDRESS, ID); @@ -81,7 +82,7 @@ void ModBusConfig::SetBaudRate(int BAUDRATE) { if (BAUDRATE > 0 && BAUDRATE <= MAX_BAUD_RATE) { if (dividedBaudrate != EEPROM.read(BAUD_RATE_ADDRESS)) { if (currentTime - lastWriteTimeBaud >= WRITE_INTERVAL) { - EEPROM.write(BAUD_RATE_ADDRESS, dividedBaudrate); + EEPROM.put(BAUD_RATE_ADDRESS, dividedBaudrate); lastWriteTimeBaud = currentTime; } }