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