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
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
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ß
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
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.
Hallo, @ Benedikt, genau so hab ichs jetzt auch geschafft. ich danke euch. Gruß, Andreas
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.