- タイマカウンターの作成
引数:void
戻り値:void
- 新規タスクをスレッドに登録する
引数:struct task define *tasks
戻り値:void
引数は volatile unsigned char task*id*
, Priority priority
, void (*task*handler*)(void)
を引数に持つ構造体配列.
以下のように実行したいタスク関数を作成する
void LED(void)
{
digitalWrite(1, !digitalRead(1));
}
作成したタスク関数に対し、
tasks[0] = {2, 2, LED)};
としてタスク ID とプライオリティをセットし、次のようにスレッドに登録する
all_set_task(tasks);
- プライオリティは
0~10
の範囲で指定
void task_function(void)
{
// do something
}
- タイマを用いる場合、main 関数の最後に
while (1);
命令を明示する
int main(void)
{
init_all();
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
tasks[0] = {2, 2, LED1};
tasks[1] = {3, 3, LED2};
tasks[2] = {4, 4, LED3};
all_set_task(tasks);
timer_create();
os_start();
while (1)
; // 無限ループ(割込み待ち)
}