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
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 } }
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.