Go Down

Topic: Task scheduler für ARM-basierte Arduino Boards (Arduino Primo) (Read 222 times) previous topic - next topic

milito

Hi,

ich bin auf der Suche nach einen prioritätengesteuerten Task scheduler für einen ARM-basierten Arduino.
Ich habe mehrere Task scheduler gefunden, doch diese sind leider für AVR-basierte Arduinos und das ganze timing stimmt nicht für den Primo den ich getestet habe siehe link:
https://github.com/arkhipenko/TaskScheduler

Dieser Scheduler wäre gut,doch nur AVR-basiert.
Kent jemand einen Scheduler, der für den Primo geeignet wäre, womit ich mehrere Tasks verwalten kann und Prioritäten setzen kann?

uwefed

ARM-besierende Arduinos sind selten (wenig verbreitet). Darum kann es leicht sein, daß sich niemand die Arbeit gemacht hat einen Task Scheduler zu schreiben.
Grüße Uwe

ArduFE

Scheduler gibt es einige auch für manche ARM-Boards. Der hier z.B. auch für Zero, Due und Teensy 3.x
https://github.com/mikaelpatel/Arduino-Scheduler

Einen mit Prioritäten kenne ich aber nicht. Vielleicht besser irgend ein RTOS suchen ?

Ansonsten hat Uwe schon recht, die (original) ARM Arduino sind ziemlich selten. Software Neuentwicklungen rund um ARM findet z.B. eher um die Teensy Boards statt.

Hier wäre noch was aus dem Playground
http://playground.arduino.cc/Code/QP
Ich kenne den aktuellen Stand der Software nicht, habe nur vor einiger Zeit das Buch vom Autor gelesen (Practical UML Statecharts in C/C++). Die Software läuft auf allem möglichen, vom Microcontroller bis zum PC (inkl. .net und Java). Verlangt sicher etwas Einarbeitung.

milito

Danke für die Infos. Hmm ich wollte diesen für den Arduino Primo verwenden. Was könntet ihr mir da empfehlen?

ArduFE

Hier unter Arduino.cc ist er nicht einmal als Produkt gelistet. Er stammt wohl von Arduino.org.

Was mit deren Produkten aktuell genau passiert, entzieht sich meiner Kenntnis. Werden eventuell eingestampft, mit denen von .cc zusammengelegt oder von Mustos neuer Firma übernommen.

Ein Prozessor von Nordic ist im Bastelbereich schon was exotisches, erst recht für Arduino. Da wirst du hier nicht viele finden, die sich da auskennen.

Wie schon gesagt, das oben verlinkte QP-Framework sollte eigentlich mit C++ und der Arduino API (millis, digitalRead, usw.) zufrieden sein. Daher solltes es eigentlich egal sein, auf welchem Prozessor das läuft. Ein klassischer Scheduler im engeren Sinne ist das aber nicht, kann aber beliebig komplexe parallele Aufgaben in einem einzigen Task packen.

JuliusCaesar89

hey
wenn du nen Task scheduler suchst solltest du dir eventuell überlegen ein RTOS zu verwenden.
Ich habe mal FreeRtos auf dem arudino uno verwendet.
Lief prinzipiel auch ganz gut. Problem hier war nur, dass der Speicher vom Uni sehr schnell voll war. 2 Tasks und 2 Queues haben gereicht um den Speicher zu sprengen.

Ich weiß nicht ob der Primo im Vergleich zum Uno mehr Speicher hat aber du könntest es ja mal versuchen :)

uwefed

Hier unter Arduino.cc ist er nicht einmal als Produkt gelistet. Er stammt wohl von Arduino.org.
Im arduino.cc Store gibt es ihn, er ist aber ausverkauft.
https://store.arduino.cc/arduino-primo
Grüße Uwe

milito

Ah okay, das hätte mich gewundert. Das Board scheint neu zu sein. Gibt es vllt eine Alternativen zu einem Task manager? Bzw. wüsstet Ihr wie man mehrere Tasks verwalten könnte?

ArduFE

Bzw. wüsstet Ihr wie man mehrere Tasks verwalten könnte?
Ich würde sagen fang mal bei den Grundlagen an und schau dir (noch) einmal das Beispiel "Blink without Delay" in der IDE an. Such auch mal hier im Forum nach "Nachtwächtererklärung".

Du kannst auch mal nach "task macros" suchen, das wäre ein sehr minimalistischer Ansatz, der sollte eigentlich auf allen Arduinos laufen.

Go Up