Skip to content

Commit bfaaa48

Browse files
committed
Arduinization of code
cleaner code using Arduino functionality. #4
1 parent 26beb0e commit bfaaa48

File tree

1 file changed

+7
-14
lines changed

1 file changed

+7
-14
lines changed

C_ESR_METER.ino

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
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
3435
LiquidCrystal_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
866867
void 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

Comments
 (0)