1, EEPROM 的读写
#include <EEPROM.h>
template <class T, class sizetype> sizetype EEPROM_write(sizetype addr, const T& value)
{
const byte* p = (const byte*)(const void*)&value;
for (sizetype i = 0; i < sizeof(value); i++)
EEPROM.write(addr++, *p++);
return i;
}
template <class T, class sizetype> sizetype EEPROM_read(sizetype addr, T& value)
{
byte* p = (byte*)(void*)&value;
for (sizetype i = 0; i < sizeof(value); i++)
*p++ = EEPROM.read(addr++);
return i;
}
template <class T, class sizetype> T&& EEPROM_read(sizetype addr)
{
T value;
byte* p = (byte*)(void*)&value;
for (sizetype i = 0; i < sizeof(value); i++)
*p++ = EEPROM.read(addr++);
return value;
}