Werte ändern in void setup()

Hallo zusammen,
ist es möglich die im setup eingetragenen Werte zu ändern?
void setup()
{
....
int val1=0;
...
}
Der Wert von "val1" wird in der loop-Schleife manuell geändert und soll dann im setup gespeichert werden.

Nein, du kannst den Quellcode ja nicht im Nachhinein beeinflussen. Die Lösung des Problems ist dann wohl, die Daten im Eeprom abzulegen. In der setup-Routine wird der entsprechende Eepromwert geladen, in der loop kann er dann entsprechend geändert und auch wieder gespeichert werden. Beim nächsten Start des Mikrocontrollers wird wiederum der aktualisierte Wert aus dem Eeprom geholt usw..
Aber Vorsicht! Unendlich oft darf man das nicht machen, das Eeprom hat nur eine begrenzte Anzahl von Speicherzyklen!

Wenn Du eine Variable in einer Funktion definierst existiert sie nur in dieser Funktion.

void setup()
{
....
int val1=0;
...
}

val1 existiert nur im setup() nicht aber in loop() oder einer anderen Funktion.

int val1=0;
void setup()
{
...
}

Wenn Du die Variable außerhalb der Funktion deklarierst existiert sie in allen Funktionen. Man nennt sie auch globale Variable.

void setup()
{
....
int val1=0;
...
}
void loop()
{
....
int val1=0;
...
}

Schlimmer noch: Die Variable val1 in setup() ist eine andere Variable als val1 im loop().

Zur Schreibanzahl des EEPROM im ATmega wird garantiert:
minimale Anzahl der Schreib/Löschzyklen: 100000
Die Lesezyklen sind unbegrenzt.
Reliability Qualification results show that the projected data retention failure rate is much less than 1 PPM over 20 years at 85°C or 100 years at 25°C.

Zum Speichern im EEprom des ATmega:

Beispielsketch in IDE-File-Example-EEPROM

Grüße Uwe

Erst mal Danke für die Antworten. Hab allerdings nen Denkfehler reingebracht, der Wert wird ja schon vorher eingestellt (nicht im setup), sondern bei der Initialisierung (#include <ITDB32_Touch.h> … int val1=0). Wird aber an der Sache nichts ändern?
Das mit den Schreib-/Löschzyklen ist nicht kritisch, da der Wert manuell geändert wird (1-2x im Monat).

Wenn val1 außerhalb von setup() und loop() und ein 2. mal im setup() deklariert wird dann sind das 2 verschiedene Variablen. Die eine überall außer in setup() gültig und die andere nur innerhalb setup().
grüße Uwe