While schleife Zeitgesteuert verlassen

Gast #363663
Lesenswert?
• ▲
▼
Hi. Kann mir jemand sagen, wie ich eine while schleife z.b. nach 5
sekunden verlassen kann, und danach die nächste schleife widerrum für
eine gewisse Zeit durchlaufen wird, ehe im programm weitergefahren wird
?
Bin leider noch neu in sachen AVR programmierung.

schonmal danke an euch,

Andreas
Gast #363664
Lesenswert?
• ▲
▼
des macht man mit einem Timer und keiner WHILE Schleife.

Timer Starten und immer einen Captore / Overflow erzeugen

in dem Interrupt handler eine glibale Variable (systick) hochzaehlen
und dann in der main diese variable auswerten
Gast #363665
Lesenswert?
• ▲
▼
Entschuldigung. hatte vergessen zu erwähnen, das ich noch Anfänger bin.
Somit kann ich mit deiner Erklärung nicht viel anfangen.
Dachte natürlich das es einfacher gehen würde.
Aber ich werde nun mal unter allen Punkten die du hier ansprichst mal
nachlesen. Hab mit Interrupts noch nichts gemacht.

Aber trotzdem schonmal danke für die Tipps.

Gruß
Gast #363666
Lesenswert?
• ▲
▼
extern long get_timer(); // z.B. in ms
long timeout;

timeout = get_timer()+5000; // maximal 5 sekunden
while(timeout > get_timer() && zusatzbedingung) {
  ....
  ....
} // die Schleife läuft max. 5 sekunden
Gast #363667
Lesenswert?
• ▲
▼
Falls das ganze nur als Aufhäng Schutz für den Fall dass z.B. ein LCD
das Busy Flag nie löscht dienen soll, dann reicht auch eine einfache
Lösung indem man eine Variable in der while Schleife hochzählt und ab
einem bestimmten Wert die Schleife verlässt.

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