3030#include < LiquidCrystal_I2C.h> // LiquidCrystal Arduino library for I2C PCF8574 based LCD displays (v1.1.2)
3131 // https://github.com/johnrickman/LiquidCrystal_I2C/tree/1.1.2
3232
33+ #include < string.h>
3334// Instance an I2C LCD display (16 columns x 2 rows) at PCF8574 address 0x27
3435LiquidCrystal_I2C lcd (0x27 , 16 , 2 );
3536
@@ -176,7 +177,7 @@ byte lock[8] = {
176177#define USR_Cx_EEPROM_OFFSET 0x10
177178#define USR_1_Cx_EEPROM_OFFSET 0x14
178179#define ESR_METER_FLAG_EEPROM_OFFSET 0x18
179- # define ESR_METER_FLAG " ESRMETER "
180+ constexpr const char ESR_METER_FLAG[] = { ' E ' , ' S ' , ' R ' , ' M ' , ' E ' , ' T ' , ' E ' , ' R ' };
180181
181182// Timeouts values
182183#define NO_TIMEOUT 0 // No timeout
@@ -864,18 +865,12 @@ void display_Cx_raw(LiquidCrystal_I2C lcd) {
864865// Read user calibration values from EEPROM
865866// or writes default calibration values in first use
866867void initEEPROM (void ) {
867-
868- String flag = String (ESR_METER_FLAG);
869- String flag_read = String (" " );
870- char c = ' \0 ' ;
871-
868+ char flag_read[sizeof (ESR_METER_FLAG)];
869+
872870 // Try to read ESR_METER_FLAG from EEPROM
873- for (uint16_t i = 0 ; i < flag.length (); i++) {
874- c = EEPROM.read (ESR_METER_FLAG_EEPROM_OFFSET + i);
875- flag_read += c;
876- }
871+ EEPROM.get (ESR_METER_FLAG_EEPROM_OFFSET, flag_read);
877872
878- if (flag == flag_read ) { // Read user settings from EEPROM
873+ if (memcmp (ESR_METER_FLAG, flag_read, sizeof (flag_read)) == 0 ) { // Read user settings from EEPROM
879874 EEPROM.get (U0_ESR_1_EEPROM_OFFSET, U0_ESR_1);
880875 EEPROM.get (U0_ESR_10_EEPROM_OFFSET, U0_ESR_10);
881876 EEPROM.get (USR_1_EEPROM_OFFSET, USR_1);
@@ -892,9 +887,7 @@ void initEEPROM(void) {
892887 EEPROM.put (USR_1_Cx_EEPROM_OFFSET, USR_1_Cx);
893888
894889 // Write ESR_METER_FLAG to EEPROM
895- for (uint16_t i = 0 ; i < flag.length (); i++) {
896- EEPROM.write (ESR_METER_FLAG_EEPROM_OFFSET + i, flag[i]);
897- }
890+ EEPROM.put (ESR_METER_FLAG_EEPROM_OFFSET, ESR_METER_FLAG);
898891 }
899892}
900893
0 commit comments