Text speichern in EEPROM? Sinnvoll? Und wie gehts?

Naja, der Sketch ist inzwischen schon recht umfangreich...

Ich schneide mal die betreffenden Teile heraus- in der Hoffnung die Problematik wird erkennbar. Der gesamte Sketch ist zu lang :-/

so sieht ein (kleiner) Teil der Variablen aus:

int WeckerEingabe[12]; // Stunde, Minute, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag, Feiertag, Brückentag, aktiviert
String WeckerEingabeName[20];// = {"n","e","u","e","r"," ","A","l","a","r","m","","","","","","","","",""};
String WeckerEingabeNameclear[20] = {"","","","","","","","","","","","","","","","","","","",""};
byte Wecker1[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
String Wecker1Name;
byte Wecker2[12];
String Wecker2Name;
byte Wecker3[12];
String Wecker3Name;
byte Wecker4[12];
String Wecker4Name;
byte Wecker5[12];
String Wecker5Name;
byte Wecker6[12];
String Wecker6Name;
byte Wecker7[12];
String Wecker7Name;
byte Wecker8[12];
String Wecker8Name;
byte Wecker9[12];
String Wecker9Name;
byte Wecker10[12];
String Wecker10Name;
String AlarmText;
byte Cursor;
String aktuellerBuchstabe;
byte ZeichenWahl;
byte Speichern;
byte letzteEingabeloeschen;
byte Eingabeloeschen;

unsigned int SpeicherUhr = 0;
unsigned int SpeicherKalender = 1;
unsigned int SpeicherSchrift = 2;
unsigned int SpeicherDesign = 3;
unsigned int SpeicherWecker1[12] = {4,5,6,7,8,9,10,11,12,13,14,15};
unsigned char SpeicherWecker1Name[20] = {16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35};

und nun das lesen im setup:

  UhrAuswahl = EEPROM.read(SpeicherUhr);
  KalenderAuswahl = EEPROM.read(SpeicherKalender);
  Schrift = EEPROM.read(SpeicherSchrift);
  Design = EEPROM.read(SpeicherDesign);
  for ( int i = 0; i < 12; i++ )
      { Wecker1[i] = EEPROM.read(SpeicherWecker1[i]); }
  Wecker1Name = EEPROM.read(SpeicherWecker1Name[0])&EEPROM.read(SpeicherWecker1Name[1])&EEPROM.read(SpeicherWecker1Name[2])&EEPROM.read(SpeicherWecker1Name[3])&EEPROM.read(SpeicherWecker1Name[4])&EEPROM.read(SpeicherWecker1Name[5])&EEPROM.read(SpeicherWecker1Name[6])&EEPROM.read(SpeicherWecker1Name[7])&EEPROM.read(SpeicherWecker1Name[8])&EEPROM.read(SpeicherWecker1Name[9])&EEPROM.read(SpeicherWecker1Name[10])&EEPROM.read(SpeicherWecker1Name[11])&EEPROM.read(SpeicherWecker1Name[12])&EEPROM.read(SpeicherWecker1Name[13])&EEPROM.read(SpeicherWecker1Name[14])&EEPROM.read(SpeicherWecker1Name[15])&EEPROM.read(SpeicherWecker1Name[16])&EEPROM.read(SpeicherWecker1Name[17])&EEPROM.read(SpeicherWecker1Name[18])&EEPROM.read(SpeicherWecker1Name[19]);

und hier der Teil wo die Werte geschrieben werden sollen- da kommt es nun zum Konflikt:

  if ( Speichern == 1 )
  {
       
  if ( Wecker1[0] == 0 || Wecker1[0] > 100)
     { for ( int i = 0 ; i < 12 ; i++ )
       { Wecker1[i] = WeckerEingabe[i]; 
         EEPROM.write(SpeicherWecker1[i], Wecker1[i]);}
       Wecker1Name = WeckerEingabeName[0] + WeckerEingabeName[1] + WeckerEingabeName[2] + WeckerEingabeName[3] + WeckerEingabeName[4] + WeckerEingabeName[5] + WeckerEingabeName[6] + WeckerEingabeName[7] + WeckerEingabeName[8] + WeckerEingabeName[9] + WeckerEingabeName[10] + WeckerEingabeName[11] + WeckerEingabeName[12] + WeckerEingabeName[13] + WeckerEingabeName[14] + WeckerEingabeName[15] + WeckerEingabeName[16] + WeckerEingabeName[17] + WeckerEingabeName[18] + WeckerEingabeName[19];   
       Wecker1[11] = 1; tft.clearScreen(Hintergrund1);BildSchirm6(); BildSchirmWahl = 6; Speichern = 0;
       for ( int k = 0 ; k < 20 ; k++ )
           { EEPROM.write(SpeicherWecker1Name[k],WeckerEingabeName[k]); }
       }}