strcpy ?

Hallo,

gibt es eine Möglichkeit das 2. Argument von strcpy im Flash zu speichern?

z.B. strcpy(vText, "Mein Text");

Was nicht geht ist

strcpy(vText, F("Mein Text"));

LG

Du suchst strcpy_P. Infos zu den Verwandten hier.

Gruß Tommy

F() ist aus der Arduino IDE und funktioniert nur mit print()/println(). Für die _P Funktionen gibt es PSTR()

Danke für die Tipps,

hier das Ganze noch als Beispiel.

char buffer[50]; 

void setup() {
  Serial.begin(9600); 
  while(!Serial); 
  Serial.println("OK");
  
  const static char string_0[] PROGMEM = "String 0"; 
  const static char string_1[] PROGMEM = "String 1"; 
  const static char string_2[] PROGMEM = "String 2String 2String 2String 2String 2String 2"; 
  const static char string_3[] PROGMEM = "String 3"; 
  const static char string_4[] PROGMEM = "String 4";
  const static char string_5[] PROGMEM = "String 5";
  const static char sTxt[] PROGMEM = "TestTest";
  const static char* const string_table[] PROGMEM = { string_0, string_1, string_2, string_3, string_4, string_5 }; 

 
  for (int i = 0; i < 6; i++) {
    strcpy_P(buffer, (char*)pgm_read_word(&(string_table[i]))); 
    Serial.println(buffer); 
  }
  
  sprintf_P(buffer, PSTR("Formattest %S abc %03dkk"), sTxt, 12);
  Serial.println(buffer);
  
  strcpy_P(buffer, PSTR("strcpy_Pstrcpy_Pstrcpy_P"));
  Serial.println(buffer);
}

void loop() {}