mikrocontroller.net

Forum: Compiler & IDEs While schleife Zeitgesteuert verlassen


Autor: Andreas Weiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jens D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Weiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas Weiler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
@ Benedikt, genau so hab ichs jetzt auch geschafft. ich danke euch.
Gruß,
Andreas

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.