Hallo,
ich will das meine Program alle 30 sekunden einmal durchlaufen wird. Gibt es da etwas wie in C "void loop"? Mir fällt außer einer endlosen do while Schleife momentan nichts ein. Das Intervall in dem das Programm durchlaufen wird kann sich auch noch verändern.
Loop in Python
Eine Endlosschleife ('while True:') in Verbindung mit 'time.sleep' wäre denke ich die übliche Lösung. Das Argument, das time bekommt, kannst du ja dynamisch anpassen. Wenn es um das Programm selbst geht, können auch übergeordnete Dienste wie Cron oder Systemd Timer unter Unix eine Möglichkeit sein. Cron z.B. kennt als niedrigste Auflösung Minuten, das fällt also raus.
- __blackjack__
- User
- Beiträge: 14042
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Hypec: Was ist eine „void loop“ in C? Ich kenne da nur ebenfalls eine ``while (true) {…}``-Schleife, oder eine ``for``-Schleife ohne Initialisierung/Test/Aktualisierung (``for (;;) {…}``) oder einen unbedingten Sprung (``goto``). Die letzten beiden Konstrukte gibt es in Python nicht. ``for``-Schleifen in Python sind „for each“-Schleifen, die es in C nicht gibt.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Beim Arduino welcher ja auch in C programmiert wird gibt es doch eine loop funktion welche sich dauerhaft wiederholt.
Doch Crontab ist eine gute Lösung im 1 Minuten Takt das reicht mir aus, vielen dank für die Hilfe. Wenn das nicht klappen sollte probiere ich die while True schleife.
Doch Crontab ist eine gute Lösung im 1 Minuten Takt das reicht mir aus, vielen dank für die Hilfe. Wenn das nicht klappen sollte probiere ich die while True schleife.
- __blackjack__
- User
- Beiträge: 14042
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Hypec: Der Arduino wird in C++ programmiert. Das ist aber nicht C++ sondern die Arduino Laufzeitumgebung. Man kann weder in C noch in C++ einfach eine Funktion `void loop()` definieren und erwarten, dass die dann auf magische Weise immer wieder aufgerufen wird.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
https://de.wikipedia.org/wiki/Arduino_(Plattform) Also hier steht C, C++ und Asembler. Das das eine Funktion der Laufzeitumgebung ist wusste ich nicht.
- __blackjack__
- User
- Beiträge: 14042
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
AVR-Assembler geht ja nur wenn auch tatsächlich ein entsprechender Prozessor im Arduino steckt. Es gibt ja mittlerweile auch Arduinos mit ARM-Prozessoren und die Umgebung wurde auch auf andere Boards mit anderen Prozessoren portiert. Die Arduino-Webseite sagt C++ und empfiehlt Bibliotheken als Klasse zu implementieren, also auch C++. C ist da eher als Untermenge von C++ dabei; letztlich läuft das immer durch einen C++-Compiler.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.