Skip to content

Commit 08d0206

Browse files
authored
Update SparkFun_External_EEPROM.h
1 parent c64d7df commit 08d0206

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/SparkFun_External_EEPROM.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,19 @@ class ExternalEEPROM
174174
return t;
175175
}
176176

177+
template <typename T> const T &putChanged(uint32_t idx, const T &t) // Address, data
178+
{
179+
const uint8_t *newData = (const uint8_t *)&t;
180+
uint8_t oldData[sizeof(T)];
181+
read(idx, oldData, sizeof(T)); // Address, data, sizeOfData
182+
for (uint16_t i = 0; i < sizeof(T); i++) {
183+
if (oldData[i] != newData[i]) {
184+
write(idx + i, newData[i]);
185+
}
186+
}
187+
return t;
188+
}
189+
177190
uint32_t putString(uint32_t eepromLocation, String &strToWrite);
178191
void getString(uint32_t eepromLocation, String &strToRead);
179192

0 commit comments

Comments
 (0)