Arduino Playground is read-only starting December 31st, 2018. For more info please look at this Forum Post

ArduOS

a small preemptive multitasking-system

the new arduOS on launchpad
put the files/direcories into <arduino-sketchbook>/libraries/
Attach:arduOS.zip


Navigation


Using it

To Use arduOS, you will have to remember those details:

  • including those files:
    • arduos_core.h nothing can work without its core
    • arduos16.h interrupts for 16 mhz
    • arduos_new.h or malloc (required for new) will not work from within a task.
  • including and instantiating a Scheduler
    • if you have no need for tasks, that will be executed in a certain time (i'll refer to them as timed tasks), you should probably include / roundscheduler.h for SYS::RoundScheduler
    • if you have only need timed tasks you should include timedscheduler.h for SYS::TimedScheduler
    • if you want both, you should include combinedscheduler.h for SYS::CombinedScheduler
  • including one or more suitable task types, such as:
    • a task for the roundscheduler that adds itself automatically to the first allocated roundscheduler: SYS::SATask in satask.h
    • a task for the timedscheduler that adds itself automatically: SYS::TimedTask in timedtask.h
    • other types
  • using SYS_setup at the beginning of setup()
  • putting SYS_enable_preemptive into the sketch (not within a function)

Known Bugs:

if you discover a Bug or have something to contribute, please send me an Email.

Author: Lars Ole Hollenbach
Contact: lohlive<at>googlemail.com