Ich glaube dir fehlt so ein bisschen das Grundverständnis für Mikrocontroller.
Letztendlich hat dein Code eine main Funktion
Wenn der Controller startet oder einen Reset durchführt schaut er im Speicher an einer bestimmten Stelle nach. Nämlich dort wo der Code für die Main Funktion liegt. Dieser Code wird dann ausgeführt.
D.h. effektiv wenn wir einfach nur eine Anweisung reinschreiben, dann wird diese ausgeführt und das Programm ist zu Ende.
Also z.B
Code:
int main(void)
{
DDRB = (1<<PB0);
//Und jetzt endet das Programm
}
Deshalb haben wir die Main schleife. Jede Anweisung darin wird so lange ausgeführt bis der Controller ausgeschaltet wird:
Also:
Code:
int main(void)
{
//Einmalige Setup Sachen (z.B. pin auf Eingang setzen)
while(1)
{
//Sachen die wiederholt getan werden sollen (Also z.B. Pin Zustand abfragen)
}
}
Für Deinen Fall bedeutet das jetzt, dass du in etwa sowas hier willst:
Code:
int main(void)
{
DDRB = (1<<PB0); //Entsprechende PINs auf Eingang setzen
//Weitere Setup Aktionen durchführen wie z.B. LED Pin auf Ausgang setzten
//Zustand aus dem EEPROM lesen
if(statusfromeeprom)
{
//LED an
//10 Sekunden warten
//LED aus
}
while(1)
{
//Hier jetzt den Taster abfragen:
if(PINB & (1<<PB0))
{
_delay_ms(5000); //5 Sekunden warten
if(PINB & (1<<PB0)) //Schauen ob der Pin immer noch High ist
{
//Jetzt wissen wir der Taster wurde für mindestens 5 sekunden gedrückt
//Also neuen Status in das EEPROM schreiben
}
}
}
}
Ich habe hier Pseudocode(als Kommentar) und realen Code gemischt
PS. Was ich vergessen habe: Tu dir selber den Gefallen und verbringe einfach mal paar Stunden zum einen damit das passende Datenblatt des Controllers zu lesen:
http://www.atmel.com/images/atmel-25..._datasheet.pdf (Schau ob das das richtige ist!)
Und vorallem das AVR-GCC Tutorial: https://www.mikrocontroller.net/arti...R-GCC-Tutorial
https://www.mikrocontroller.net/arti...n-_und_Ausgabe
Dabei geht es gar nicht darum dass man danach alles weiß was drin steht, sondern in den Datenblättern/Tutorien wird auch allgemein einiges über Prinzipien und Abläufe erklärt. Wenn man sich die Mühe macht das mal durchzuarbeiten hat man danach einen viel tieferen Einblick was alles möglich ist und vorallem wie es möglich ist.
Lesezeichen