/*
Texte für Menüs im PROGMEM halten und per Funktion bei Bedarf abrufen
2025/11/28
ec2021
*/
const char HmText[][20] PROGMEM = {
"Main Menue",
"Control Green",
"Control Red",
"Language"
};
const char* const hm[] PROGMEM = {HmText[0], HmText[1], HmText[2], HmText[3]};
constexpr uint8_t noHM = sizeof(hm) / sizeof(hm[0]);
const char CGText[][20] PROGMEM = {
"Green On",
"Green Off",
"Back"
};
const char* const cg[] PROGMEM = {HmText[1], CGText[0], CGText[1], CGText[2]};
constexpr uint8_t noCG = sizeof(cg) / sizeof(cg[0]);
void setup() {
Serial.begin(115200);
Serial.println("Start");
for (int i = 0; i < noHM; i++) Serial.println(getText(hm, noHM, i));
Serial.println("-------------------");
for (int i = 0; i < noCG; i++) Serial.println(getText(cg, noCG, i));
Serial.println("-------------------");
}
void loop() {
// put your main code here, to run repeatedly:
}
char * getText(char* const m[], uint8_t len, uint8_t index) {
static char buffer[20];
buffer[0] = '\0';
if (index < len) {
strcpy_P(buffer, (char*)pgm_read_word(&(m[index])));
}
return buffer;
}