Hallo, ich frage mich, wie es genau mit den millis() funktioniert, wenn man einmalig eine Funktion mit millis aufruft
Werden die dann im Hintergrund weitergezÀhlt?
Pseudo
if (server.hasArg("count")) {
down();
}
void down() {
static unsigned long vorherigeMillis {0};
if (millis() - vorherigeMillis >= INTERVALL) {
vorherigeMillis = millis();
...mache was
}
}
Die void down () steht in auf einem separaten Tab (wird also im loop nicht stÀndig aufgerufen... da wÀre mir die Funktion auch klar).
Das ist mir nun völlig unklar. Alle Tabs werden vor dem Ăbersetzen zusammenkopiert, und eine Funktion lĂ€uft dann, wenn sie aufgerufen wird. Ich wĂŒrde mal raten, dass schon das if in deinem Pseudo nicht so oft drankommt. Sondern nur wenn ein server.handleClient() in eine deiner mit server.on verkettete Callback-Funktion verzweigt...
Wenn du die Funktion nicht aufrufst, findet auch kein Vergleich statt.
Das if kann nicht wissen, was du dir wĂŒnscht.
Es kommt nicht aus eigenem Antrieb an die Reihe.
Ja,
Aber bedenke:
Nur wenn .hasArg("count") wahr ist, wird auch die Funktion down() aufgerufen.
Das kann beim ersten Mal passen,oder erst nach zigMillionen Aufrufen.
Besser:
Wenn der Vergleich wahr ist, eine bool Variable setzen.
Solange die bool gesetzt ist, die Funktion aufrufen und dort bei ...mache was die bool inhaltlich löschen.
Ich habe irgendwo mal gesehen, dass man so eine millis() Funktion auch mit Parametern fĂŒttern kann, so dass man sie fĂŒr 3 verschiedene Aufgaben nutzen kannâŠ
Zum Beispiel LED blinken, Countdown und noch was.
Es könnten auch mehrere Probleme sein, z.B. ein Webserver, der auf eine Anforderung reagieren soll, und eine Steuerung, die einige Zeit dauert. Oder mehrere Sachen, die parallel laufen und einige Zeit dauern. Und ja, die Arduino-Funktion millis() kann bei solchen Sachen verwendet werden, aber das ist eher nebensÀchlich.
Bei millis() wird ein ZÀhler jede Millisekunde eins rauf gezÀhlt. Unterschiedliche Aufgaben sind mit statischen Variablen, die zu millis() eine Differenz bilden, möglich:
blind geschrieben... Wenns nicht geht, musst Du suchen.
Ich las jetzt nur 3 leds unterschiedlich blinken, nachdem die "scharf" sind....
[edit] Zeile aus dem setup gelöscht siehe #22[/edit]
Danke euch fĂŒr die Beispiele
So etwas habe ich gesucht.
Als Einsteiger ist es nicht immer leicht, es genau zu erklÀren, was man meint
Ich werde die mal durcharbeiten!
mit erklÀrenden Kommentaren wÀre es leichter verstÀndlich.
Wenn jemand nur SpaĂ am Lernen hat wenn er Code StĂŒck fĂŒr StĂŒck analysieren muss, dann ist das schon "zu leicht" verstĂ€ndlich.
vgs
GlĂŒcklichweise haben wir alle eine unterschiedliche Steigung in der Lernkurve, mal ein biĂchen steiler oder flacher.
Denk mal nach:
Der Beispiel von my_xy_projekt ist PSEUDOCODE!
Have a nice day and enjoy coding in C++.
ĐаĐčŃĐ” ĐŒĐžŃŃ ŃĐ°ĐœŃ!
Sagen wir mal, ich sitze bei McDoof beim FrĂŒhstĂŒck, nutze das WLAN und schaue auch beim Arduino-Forum vorbei. Da gibt es ein Thema, wo ich helfen möchte und schreibe kaffeeschlĂŒrfend ein Programm, das ich aber mangels Hardware nicht testen kann. Das lade ich dann hoch und schreibe fairerweise dazu, daĂ ich es nicht getestet habe.
Was ist daran falsch?
Meine Meinung: Ich kann nichts erkennen, was solch einen Aufschrei rechtfertigt!
Der Einsatz der Pauke erscheint mir hier gĂ€nzlich fehlplatziert, bitte ĂŒberdenke Deinen Text!
Also ich finde das was my_xy_projekt macht besser als sowas wie, kaufe dir das Buch und lerne es selber. OK. es ist vielleicht oft auch besser selber was zu lernen, aber das funktioniert jedenfalls bei mir am besten mit Beispielen. Und als ich hier im Forum zuletzt wegen dem Auslesen einer Speicherkarte gefragt habe bin sowas von leer in der Birne gewesen, weil ich bei der Aufgabe echt keinen Hauch einer Ahnung hatte, wie ich das angehe. UNd da habe ich von my_xy_projekt ein Programm bekommen, das mir saubere DatensĂ€tze gemacht hat, und die Befehle, die er dafĂŒr benutzt hat, sind auch in fetten BĂŒchern eigentlich nur "erwĂ€hnt", nicht wirklich erklĂ€rt gewesen. Also die hĂ€tte ich auch in meinen vorhandenen BĂŒchern nicht gefunden. Da hast du BĂŒcher im RĂŒcken, mit 500-1000 Seiten je Buch, aber findest den Befehl nur erwĂ€hnt. Also so wie, es gibt auch noch den Befehl ....... Ende, sonst nichts. Dann suchst du im Netz und findest dort dann etwas mehr dazu, was dann aber oft wieder recht schwer verstĂ€ndlich erklĂ€rt ist. Ich wĂ€re ohne dieses Beispiel von my_xy_projekt ziemlich im Regen gestanden.
Jaaaaa, Dinge die man leicht selber finden kann, sollten man vielleicht auch suchen und finden mĂŒĂen, weil man die natĂŒrlich dann wirklich verstanden hat, wenn man sie sich selber zusammensuchen muĂte, aber es gibt auch Dinge, da findet man nichts. Wie gesagt, da sind die Infos sogar spĂ€rlich, wenn man nach den Befehlen sucht. Auch sind die ErklĂ€rungen oft nur von dem zu verstehen, der sie geschrieben hat. Absicht? ....wer weiĂ.
Wenn ich auch meine, dass Stefan eben etwas ĂŒberzogen hat, finde ich das my_xy Dingen auch etwas widerlich, arg borniert usw.
Aber immerhin bedient er die Fraktion, mit welcher ich nun wirklich herzlich wenig zu tun haben will, die "Macht ihr mal fĂŒr mich, weil ich zu doof oder zu faul bin um das selber zu tun/lernen" Fraktion.