Very simple cooperative round-robin task scheduler. See examples.
Diff: SimpleScheduler.h
- Revision:
- 3:95ec5c83c2fe
- Parent:
- 2:974a420997a9
diff -r 974a420997a9 -r 95ec5c83c2fe SimpleScheduler.h --- a/SimpleScheduler.h Fri Mar 04 12:40:14 2011 +0000 +++ b/SimpleScheduler.h Fri Mar 04 13:10:39 2011 +0000 @@ -26,6 +26,8 @@ @author Andy Kirkham */ +#ifndef AJK_SIMPLESCHEDULER_H +#define AJK_SIMPLESCHEDULER_H #include "mbed.h" #include <list> @@ -41,6 +43,8 @@ * @see SimpleScheduler * @see example1.h * @see example2.h + * @see example3.h + * @see example4.h * @see http://mbed.org/cookbook/SimpleScheduler * * @code @@ -48,8 +52,14 @@ * task->attach(func); * @endcode * @code - * SimpleTask *task = new SimpleTask(100, func); + * SimpleTask *task = new SimpleTask(100, func); // Every 100ms + * SimpleTask *task = new SimpleTask(1.0, func); // Every 1second * @endcode + * + * When creating new SimpleTasks you pass the time as a frequency + * of how often to call the task function. If the time is an integer + * then milliseconds is assumed. If the number you pass is a read (double) + * number then the time assumed is seconds. */ class SimpleTask { public: @@ -73,8 +83,6 @@ return prev; } - SimpleTask() { init(); } - // Constructor with frequency in miliseconds SimpleTask(int f) { init(f); } @@ -147,9 +155,11 @@ * * DigitalOut led1(LED1); * DigitalOut led2(LED2); + * DigitalOut led3(LED3); * * void f1(SimpleTask *task) { led1 = !led1; } * void f2(SimpleTask *task) { led2 = !led2; } + * void f3(SimpleTask *task) { led3 = !led3; } * * SimpleScheduler *scheduler; * @@ -158,8 +168,9 @@ * scheduler = new SimpleScheduler; * * scheduler - * ->addTask( new SimpleTask(0, f1) ) - * ->addTask( new SimpleTask(200, f2) ) + * ->addTask( new SimpleTask(0, f1) ) // As often as possible + * ->addTask( new SimpleTask(200, f2) ) // Every 200milliseconds + * ->addTask( new SimpleTask(1.0, f3) ) // Once a second * ; * * scheduler->run(); @@ -207,3 +218,5 @@ }; // namespace AjK ends. using namespace AjK; + +#endif \ No newline at end of file