Nun jetzt zerlegen wir dein Problem mal in einige kleine Teilprobleme:
1. Einlesen eines Tasters
//Entnommen hier raus: https://www.mikrocontroller.net/arti...R-GCC-Tutorial
Code:
/* Fuehre Aktion aus, wenn Bit Nr. 1 (das "zweite" Bit) in PINC gesetzt (1) ist */
if ( PINC & (1<<PINC1) ) {
/* Aktion */
}
2. Zeit messen können.
Variante 1: Einfach 5 Sekunden schlafen und dann schauen ob der Taster immer noch High ist
Variante 2: Mit einem Timer der alle 10 Millisekunden eine Variable hochzählt die Zeit messen. Dazu merkt man sich in der Hauptschleife beim ersten mal Abfragen den Wert der Zeitvariable und prüft diese bei jeden Durchlauf ab. Wenn 5 Sekunden vergangen sind noch mal den Eingangspin des Tasters prüfen. (Hat den Vorteil man kann die Zeit auch noch anders verwenden)
3. In den EEPROM schreiben
Das lesen/ schreiben in den EEPROM ist vom Code her eine etwas aufwendigere Geschichte. Deshalb verweise ich an der Stelle nur auf die passende Stelle im AVR GCC Tutorial: https://www.mikrocontroller.net/arti...Tutorial#EEMEM
Ein Hinweis dabei: Man sollte das EEPROM ringweise beschreiben, da die einzelnen Zellen eine stark begrenzte Anzahl von Schreibzyklen haben.
Schreib einfach wenn du konkrete Fragen zu einem der Punkte hast.
Lesezeichen