Geändert: EEPROM.write to EEPROM.put

modified:   include/ModbusSlaveConfigToEEPROM.h
This commit is contained in:
chschloetel 2024-11-02 20:18:01 +01:00
parent d94ba681fb
commit 19f54dded9

View File

@ -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;
}
}