AVR ATmega8A Endlosschleife Wie stoppen ?

#2985042
Lesenswert?

Darum nennt sich das auch Endlosschleife. Sie läuft endlos.
Wenn du das nicht willst schreibst du ein neues Programm ohne 
Endlosschleife. Aber dann hast du das Problem, dass nach jedem Durchlauf 
der Controller quasi neu startet.

Normalerweise macht man es auch so dass man eine Endlosschleife hat 
(irgendwo in der main-Funktion) und der Controller wartet auf Events 
(wie Tastendrücke, Timer etc) und reagiert dann darauf. Und dass soll in 
der Regel auch die ganze Zeit gemacht werden, darum nimmt man eine 
Endlosschleife.
1
main(){
2
 char taster;
3
 while(1){
4
  machdies();
5
  machdas();
6
  taster = guckwietastersind();
7
  if(taster == 2)
8
    supertolle_funktion();
9
  Piepeinmal();
10
 }
11
}

Wenn du ein Programm haben willst, was nur einmal durchläuft und dann 
stehen bleibt, dann machst du das auch mit einer Endlosschleife, aber 
einer die Leer ist:
1
main(){
2

3
  machdies();
4
  machdas();
5
  machLEDan();
6
  Piepeinmal();
7
  
8
  while(1); // hier stehen bleiben
9
}
Gast #2985342
Lesenswert?

Vielen Dank für die Antworten!
Das Ganze ist mir wirklich sehr peinlich....
Habe den Reset betätigt --> Controller hält an --> lasse den Reset los 
---> Controller startet nun wieder.
Kann ich den Controller im lufenden Betrieb überschreiben, oder 
Flash-Inhalte löschen, oder .... ?

Oder muss ich nun einen neuen Controller kaufen :-(
#2985358
Lesenswert?

Nein du musst dir natürlich jedes mal einen neuen kaufen :D

Quatsch mensch. Schau doch mal auf die erste Seite im Datenblatt:
1
Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
Du kannst den Flash-Speicher (dort liegt das Programm) also mindestens 
10000 mal überschreiben. Und ja das geht auch während das Programm 
läuft.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren