Hello everyone, I have been writing this program, is an interface for an LCD, the only problem I have is in this part:
void labelsMenu() {
for(int x; x < 3; x++){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Label Obj. ");
lcd.print(x+1);
lcd.print(":");
position = 3;
lcd.setCursor(position,2);
char l = 'A';
lcd.print(l);
for (int i; i < 15; i++) OBJ[x][i] = 0;
OBJ[x][0] = l;
for (int i; i < 15; i++){
do {
delay(250);
Serial.print("HELLO");
if (digitalRead(down_button)) {
delay(250);
l--;
if (position < 3) position = 3;
}
if (digitalRead(up_button)) {
delay(250);
l++;
if (position > 15) position = 15;
}
if (l > ('Z' + 15)) l = 'A';
else if (l < ('A' - 1)) l = ('Z' + 15);
if (l == ('Z' + 1)) OBJ[x][i] = ' ';
else if (l == ('Z' + 2)) OBJ[x][i] = ',';
else if (l == ('Z' + 3)) OBJ[x][i] = '.';
else if (l == ('Z' + 4)) OBJ[x][i] = '-';
else if (l == ('Z' + 5)) OBJ[x][i] = '_';
else if (l == ('Z' + 6)) OBJ[x][i] = '0';
else if (l == ('Z' + 7)) OBJ[x][i] = '1';
else if (l == ('Z' + 8)) OBJ[x][i] = '2';
else if (l == ('Z' + 9)) OBJ[x][i] = '3';
else if (l == ('Z' + 10)) OBJ[x][i] = '4';
else if (l == ('Z' + 11)) OBJ[x][i] = '5';
else if (l == ('Z' + 12)) OBJ[x][i] = '6';
else if (l == ('Z' + 13)) OBJ[x][i] = '7';
else if (l == ('Z' + 14)) OBJ[x][i] = '8';
else if (l == ('Z' + 15)) OBJ[x][i] = '9';
if (l <= 'Z' && l >= 'A') OBJ[x][i] = l;
lcd.setCursor(position,2);
if(l != ('A' - 1)) lcd.print(OBJ[x][i]);
if (l < 'A'){
lcd.setCursor(position,2);
lcd.write(1);
}
if (digitalRead(back_button)){
configMenu();
}
} while (!digitalRead(selection_button));
position++;
if (l < 'A'){
OBJ[x][i] = ':';
OBJ[x][i+1] = ' ';
i = 15;
break;
}
l = 'A';
OBJ[x][i+1] = l;
lcd.setCursor(position, 2);
lcd.print(l);
}
for (int i = 0; i < 15; i++)
EEPROM.write(4 + i, OBJ[x][i]);
}
}
At first I've tested it only for OBJ 0, and it works fine, as expected, but when I added the for loop to do that rutine 3 times for the 3 Objects I have, it skips the while loop. I don't think it is a stack overflow, but it may be, so I want to ask you all if you know why this is happening or how to handle with this.