Endlosschleife in RTC Beispiel

Gast #2819928
Lesenswert?

Hallo,

ich arbeite mich gerade ein wenig in die stm32 Programmierung anhand der 
gegebenen Beispiele ein. Klappt bisher ganz gut nur habe ich jetzt mal 
eine Frag zur RTC und finde einfach keine Antwort. Den Code aus der Lib. 
habe ich mal angehängt.
Es geht um die zwei Schleifen bei 113 und 214. Welchen Zweck erfüllen 
sie genau?
Bin was programmeiren angeht noch ziemlicher Anfänger also wenn möglich 
"einfach" erklären ;)
LG
Foxy
Angehängte Dateien:
Gast #2819960
Lesenswert?

Hallo.

Bei den beiden Schleifen

While(1)
{
}

handelt es sich um Endlosschleifen. Dort passiert nichts mehr.
Du hast zwei Möglichkeiten auf einer Endlosschleife heraus zu kommen:
1. Du aktivierst den Watch Dog, der dann nach Ablauf der Zeit einen 
Reset durchführt.

2. Du hast eine Interrupt Service Routine geschrieben und die globale 
Interruptfreigabe ist gesetzt. Dann wird im Falle eines Interrupts die 
Endlosschleife verlassen und die ISR ausgeführt. Allerdings springt das 
Programm nach der Beendigung wieder zurück in deine Endlosschleife. Also 
hast du diese nicht wirklich verlassen.

Ansonsten benutzt man diese Schleife z.B. in der Main, um das 
Programmierte immer wieder ablaufen zu lassen:


void main()
{
  ..
  ..
  while(1)
    {
      // Dein Code
    }
}
Gast #2820057
Lesenswert?

In diesem Fall wollte der Programmierer die Demo beenden. Nur - was soll 
passieren, wenn ein Mikrocontoller Programm zu ende ist? Da hat der 
Hersteller einfach gesagt: ein MC Programm darf sich nicht beenden. Es 
muss immer weiter laufen. Weil nach der Demo nichts mehr zu tun ist, 
setzte der Programmierer einfach eine Endlosschleife hinter sein 
Programm.
#2820282
Lesenswert?

Es könnte z.b. sinnvoll sein ihn hier immer wieder schlafen zu legen, 
dabei reduziert sich der Stromverbrauch. Man muß dabei aber aufpassen 
das  man nicht Teile die für die Ausführung noch wichtig sind dabei 
deaktiviert. z.b. nen Timer der aber den nächsten Interrupt aktivieren 
soll.

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