I need to write and read an array[3][12] of integers, but I'm having a problem reading or writing but I'm not sure where it happens.
Do I read all the written values without problems except one, an integer with value 365 do I read it 109 ?
I can't figure out why, can anyone help me figure out the problem?
Using Arduino ver. 1,8,19 with STM32 WROOM 38 pins
int phaseData[3][12] = { 1, 3, 10, 30, 40, 80, 10, 60, 1, 5, 3, 24,
4, 15, 5, 15, 30, 80, 10, 60, 1, 5, 3, 24,
10, 365, 5, 15, 30, 80, 10, 60, 1, 5, 3, 24 };
void EE_init(){ // Writing standard values used also for reset routine
EEPROM.begin(EEPROM_SIZE);
delay(200);
int d = 0;
int x = EEPROM.read(23);
if (x != 1 || x != 2 || x != 3) { // Check if the EEPROM is empty, in this case it writes the default values
Serial.println("No data in EEPROM writing default");
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 12; c++) {
Serial.print("r " + String(r));
Serial.println(" - c " + String(c));
EEPROM.write(d, phaseData[r][c]);
Serial.println("Write " + String(phaseData[r][c]) + " d=> " + String(d) );
d=(d*10)/(2.5*4)+((2^0*2));
}
}
}
EEPROM.end();
delay(200);
}
//************************************* EEPROM READING ********************
void EE_reading(){ // Read stored values
Serial.println("EE_reading");
EEPROM.begin(EEPROM_SIZE);
delay(200);
int d = 0;
for (int r = 0; r < 3; r++) {
for (int c = 0; c < 12; c++) {
Serial.println("Read " + String(EEPROM.read(d)) + " d=> "+String(d));
d = (d*10)/(2.5*4)+((2^0*2));
Serial.print("r " + String(r));
Serial.println(" - c " + String(c));
}
}
EEPROM.end();
delay(200);
}
DEBUG
Start
No data in EEPROM writing default
r 0 - c 0
Write 1 d=> 0
r 0 - c 1
Write 3 d=> 2
r 0 - c 2
Write 10 d=> 4
r 0 - c 3
Write 30 d=> 6
r 0 - c 4
Write 40 d=> 8
r 0 - c 5
Write 80 d=> 10
r 0 - c 6
Write 10 d=> 12
r 0 - c 7
Write 60 d=> 14
r 0 - c 8
Write 1 d=> 16
r 0 - c 9
Write 5 d=> 18
r 0 - c 10
Write 3 d=> 20
r 0 - c 11
Write 24 d=> 22
r 1 - c 0
Write 4 d=> 24
r 1 - c 1
Write 15 d=> 26
r 1 - c 2
Write 5 d=> 28
r 1 - c 3
Write 15 d=> 30
r 1 - c 4
Write 30 d=> 32
r 1 - c 5
Write 80 d=> 34
r 1 - c 6
Write 10 d=> 36
r 1 - c 7
Write 60 d=> 38
r 1 - c 8
Write 1 d=> 40
r 1 - c 9
Write 5 d=> 42
r 1 - c 10
Write 3 d=> 44
r 1 - c 11
Write 24 d=> 46
r 2 - c 0
Write 10 d=> 48
r 2 - c 1
Write 365 d=> 50 <= writing value
r 2 - c 2
Write 5 d=> 52
r 2 - c 3
Write 15 d=> 54
r 2 - c 4
Write 30 d=> 56
r 2 - c 5
Write 80 d=> 58
r 2 - c 6
Write 10 d=> 60
r 2 - c 7
Write 60 d=> 62
r 2 - c 8
Write 1 d=> 64
r 2 - c 9
Write 5 d=> 66
r 2 - c 10
Write 3 d=> 68
r 2 - c 11
Write 24 d=> 70
phaseSel 0
EE_reading
Read 1 d=> 0
r 0 - c 0
Read 3 d=> 2
r 0 - c 1
Read 10 d=> 4
r 0 - c 2
Read 30 d=> 6
r 0 - c 3
Read 40 d=> 8
r 0 - c 4
Read 80 d=> 10
r 0 - c 5
Read 10 d=> 12
r 0 - c 6
Read 60 d=> 14
r 0 - c 7
Read 1 d=> 16
r 0 - c 8
Read 5 d=> 18
r 0 - c 9
Read 3 d=> 20
r 0 - c 10
Read 24 d=> 22
r 0 - c 11
Read 4 d=> 24
r 1 - c 0
Read 15 d=> 26
r 1 - c 1
Read 5 d=> 28
r 1 - c 2
Read 15 d=> 30
r 1 - c 3
Read 30 d=> 32
r 1 - c 4
Read 80 d=> 34
r 1 - c 5
Read 10 d=> 36
r 1 - c 6
Read 60 d=> 38
r 1 - c 7
Read 1 d=> 40
r 1 - c 8
Read 5 d=> 42
r 1 - c 9
Read 3 d=> 44
r 1 - c 10
Read 24 d=> 46
r 1 - c 11
Read 10 d=> 48
r 2 - c 0
Read 109 d=> 50 <= reading 109 instead of 365
r 2 - c 1
Read 5 d=> 52
r 2 - c 2
Read 15 d=> 54
r 2 - c 3
Read 30 d=> 56
r 2 - c 4
Read 80 d=> 58
r 2 - c 5
Read 10 d=> 60
r 2 - c 6
Read 60 d=> 62
r 2 - c 7
Read 1 d=> 64
r 2 - c 8
Read 5 d=> 66
r 2 - c 9
Read 3 d=> 68
r 2 - c 10
Read 24 d=> 70
r 2 - c 11
phaseSel 0