Seite 1 von 1
Loop in Python
Verfasst: Freitag 29. März 2019, 17:48
von Hypec
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.
Re: Loop in Python
Verfasst: Freitag 29. März 2019, 18:20
von nezzcarth
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.
Re: Loop in Python
Verfasst: Freitag 29. März 2019, 19:56
von __blackjack__
@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.
Re: Loop in Python
Verfasst: Freitag 29. März 2019, 22:34
von Hypec
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.
Re: Loop in Python
Verfasst: Freitag 29. März 2019, 23:08
von __blackjack__
@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.
Re: Loop in Python
Verfasst: Samstag 30. März 2019, 11:33
von Hypec
https://de.wikipedia.org/wiki/Arduino_(Plattform) Also hier steht C, C++ und Asembler. Das das eine Funktion der Laufzeitumgebung ist wusste ich nicht.
Re: Loop in Python
Verfasst: Samstag 30. März 2019, 15:49
von __blackjack__
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.