Hurra, wir sind uns einig.
Das sehe ich auch so, lasse mich aber gern vom Gegenteil überzeugen.
Was es gibt ist std::thread Unterstützung für C++, wie hier, noch etwas experimentell, für den Teensy
https://github.com/ftrias/TeensyThreads
Hier gibts das noch: http://perso.ensta-paristech.fr/~pes...s/arduino.html
(Ganz unten ist das Babix und da kann man Doku und Sourcecode herunterladen.)
Sieht auf den ersten Blick interessant aus muss ich aber noch genauer ansehen. Vielleicht finde ich da wie man das macht mit dem Speichern der Prozessdaten und dem wieder zurückspringen.
Nein Java wollen wir hier nicht ist ja gruselig ...
pthread muss man dazu nicht erst mal Prozesse haben. Ich dachte immer ein Thread ist ein Teil eines Prozesses. Vermutlich gibt es die beim Arduino nicht weil man da die Unterstützung des Betriebssystems braucht und die gibts ja hier nicht.
Hurra, wir sind uns einig.
Das sehe ich auch so, lasse mich aber gern vom Gegenteil überzeugen.
Was es gibt ist std::thread Unterstützung für C++, wie hier, noch etwas experimentell, für den Teensy
https://github.com/ftrias/TeensyThreads
Ich habe mir jetzt mal das Babix näher angeschaut ist aber nicht so einfach das was ich davon brauche heraus zu lesen.
Man kann vermutlich schon so tun als ob das Programm das auf dem Controller läuft ein Prozess ist und lässt dann innerhalb von diesem die Threads laufen.
Damit ich schon mal unabhängig von dem was mit dem Babix herauskommt an meiner Anwendung ein bisschen weiter Programmieren kann habe ich da mal den Due Scheduler benutzt. Der verteilt ja nur Rechenzeit an andere Funktionen wenn man in der Hauptschleife (loop) die Funktion delay aufruft. Das war mit zuerst entgangen und daher hat er nicht funktionieren wollen.
Hat von euch eigentlich jemand Erfahrung damit den Linux Kernel auf so Controllern zu verwenden. Der soll ja eigentlich auf deutlich kleinerem als so Raspi oder Gnublin auch noch laufen können?
also das verstehe ich ja nun nicht, um ehrlich zu sein.
Der Vorteil von Arduinos ist ja gerade, dass sie echtzeitfähig sind, im Gegensatz zum Userspace von Linux-Rechnern. Wenn dir aber Linux-Rechner schnell genug sind und du vor allem pthread brauchst, dann nimm doch gleich nen Raspi oder Beaglebone plus i2c-, USB- oder SPI-Portexpander, statt jetzt embedded Linux in einen Due reinzupressen.
Es ist ja jetzt nicht so das Linux generell nicht Echtzeitfähig wäre.
<Edit>
https://www.elektronikpraxis.vogel.d...y-pi-a-630497/
</Edit>
Echtzeitfähig zu sein hat jetzt nur wenig mit der Schnelligkeit zu tun.
Es war auch nur mal so eine Idee ob die gut ist weiß ich nicht. Die mit FreeRTOS war es ja schon mal nicht.
Geändert von alexander_ro (12.11.2017 um 12:42 Uhr)
Lesezeichen