EEPROMAnything

1:  #include <EEPROM.h>  
2:  #include <Arduino.h> // for type definitions  
3:    
4:  template <class T> int EEPROM_writeAnything(int ee, const T& value)  
5:  {  
6:    const byte* p = (const byte*)(const void*)&value;  
7:    unsigned int i;  
8:    for (i = 0; i < sizeof(value); i++)  
9:       EEPROM.write(ee++, *p++);  
10:    return i;  
11:  }  
12:    
13:  template <class T> int EEPROM_readAnything(int ee, T& value)  
14:  {  
15:    byte* p = (byte*)(void*)&value;  
16:    unsigned int i;  
17:    for (i = 0; i < sizeof(value); i++)  
18:       *p++ = EEPROM.read(ee++);  
19:    return i;  
20:  }  
21:    
22:  template <class T> int EEPROM_resetAnything(int ee, const T& value)  
23:  {  
24:    const byte* p = (const byte*)(const void*)&value;  
25:    unsigned int i;  
26:    for (i = 0; i < sizeof(value); i++)  
27:       EEPROM.write(ee++, 0);  
28:    return i;  
29:  }  

Geen opmerkingen:

Een reactie posten