└── 1233 /1233: -------------------------------------------------------------------------------- 1 | template class EEPROMVar 2 | 00025 { 3 | 00026 public: 4 | 00027 EEPROMVar(T init) { 5 | 00028 address = EEPROM.getAddress(sizeof(T)); 6 | 00029 var = init; 7 | 00030 } 8 | 00031 operator T () { 9 | 00032 return var; 10 | 00033 } 11 | 00034 EEPROMVar &operator=(T val) { 12 | 00035 var = val; 13 | 00036 return *this; 14 | 00037 } 15 | 00038 16 | 00039 void operator+=(T val) { 17 | 00040 var += T(val); 18 | 00041 } 19 | 00042 void operator-=(T val) { 20 | 00043 var -= T(val); 21 | 00044 } 22 | 00045 void operator++(int) { 23 | 00046 var += T(1); 24 | 00047 } 25 | 00048 void operator--(int) { 26 | 00049 var -= T(1); 27 | 00050 } 28 | 00051 void operator++() { 29 | 00052 var += T(1); 30 | 00053 } 31 | 00054 void operator--() { 32 | 00055 var -= T(1); 33 | 00056 } 34 | 00057 template 35 | 00058 void operator /= (V divisor) { 36 | 00059 var = var / divisor; 37 | 00060 } 38 | 00061 template 39 | 00062 void operator *= (V multiplicator) { 40 | 00063 var = var * multiplicator; 41 | 00064 } 42 | 00065 void save(){ 43 | 00066 EEPROM.writeBlock(address, var); 44 | 00067 } 45 | 00068 46 | 00069 void update(){ 47 | 00070 EEPROM.updateBlock(address, var); 48 | 00071 } 49 | 00072 50 | 00073 int getAddress(){ 51 | 00074 return address; 52 | 00075 } 53 | 00076 54 | 00077 void restore(){ 55 | 00078 EEPROM.readBlock(address, var); 56 | 00079 } 57 | 00080 protected: 58 | 00081 T var; 59 | 00082 int address; 60 | 00083 }; 61 | --------------------------------------------------------------------------------