#include <arduino-timer.h>
#include <EEPROM.h>
int eeAddress = 1;
struct Tstruct {
unsigned long milli[10];
char Name[10];
int state;
bool isFirst;
};
struct Tstruct TimerTestS; // You should assign in seup not above, declare is ok touigh
Timer<2, millis, const char *> Save_timer;
Timer<2, millis, const char *> Read_timer;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Save_timer.every(4000, TimerSave);
Read_timer.every(1000, TimerRead);
Serial.println(TimerTestS.Name);
for (int i = 0; i < 10; i = i +1){
TimerTestS.milli[i] = i + 100000UL;
}
strcpy(TimerTestS.Name, "AZRf!"); // here is where you initialize the struct NOT over setup
//Serial.print("Milli: ");Serial.println(TimerTestS.milli);
}
void loop() {
// put your main code here, to run repeatedly:
Save_timer.tick();
Read_timer.tick();
}
void TimerSave(){
//TimerTestS.milli = TimerTestS.milli + 1 ;
//Serial.print("Milli: ");Serial.println(TimerTestS.milli);
//Serial.print("Name: ");Serial.println(TimerTestS.Name);
EEPROM.put(eeAddress, TimerTestS);
return true;
}
void TimerRead(){
struct Tstruct foo;
EEPROM.get(eeAddress, foo);
//TimerTestS = foo;
//Serial.print("struct.millis: ");Serial.println(TimerTestS.milli);
Serial.print("struct.Name: ");Serial.println(TimerTestS.Name);
Serial.print("struct.state: ");Serial.println(TimerTestS.state);
for (int i = 0; i < 10; i = i +1){
Serial.print("struct.millis: ");Serial.println(TimerTestS.milli[i]);
//TimerTestS.milli[i] = i;
}
return true;
}