realtime process control with RTOS

Fork of mbed-os-example-mbed5-blinky by mbed-os-examples

main.cpp

Committer:
ykuroda
Date:
2016-11-25
Revision:
16:c5c5f3964864
Parent:
8:bb09890333fe

File content as of revision 16:c5c5f3964864:

//
//  mbed-os-control-ex1
//  正確な時間管理をするプログラムの例
//
//  20161027 ... v1.0 ... written by Y.Kuroda
//
//
#include "mbed.h"
#include "rtos.h"

const int DELTA_T = 100;    // mainスレッドの時間間隔の設定 [ms]
const int SIG_MYT = 0x1;    // signal番号
DigitalOut led1(LED1);

void robot_control(void const* arg) {   // ロボットの制御をするスレッド
    while(true){
        Thread::signal_wait(SIG_MYT);   // シグナルを待つ

        // ここに自分のプログラムを書きます.
        //
        //
        //
        Thread::wait(10);   //これは時間稼ぎのダミー.消して良い.
        //
        //
        //

        led1 = 0;   // ループの最後でLEDを消す.処理が重くなると明るくなる
    }
}


int main() {
    Thread mythread(robot_control, (void*)0);   // ロボ制御スレッドを起動

    while(true){
        Thread::wait(DELTA_T);          // mainスレッドの時間間隔の設定 [ms]
        led1 = 1;                       // 処理の先頭でLEDをを点灯
        mythread.signal_set(SIG_MYT);   // スレッドへ再開シグナルを送る
    }
}