Sample code for Mechatronics class

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //  たぶん一番簡単な時間管理プログラム - OS5
00002 //  2019.10.17 ... Y.Kuroda
00003 #include "mbed.h"
00004 Thread thread;
00005 DigitalOut p1(LED1);
00006 #define CYC_FLAG 1
00007 
00008 void my_thread()       // スレッドにする関数.正確な時間間隔で起こされる
00009 {
00010     while (true) {
00011         ThisThread::flags_wait_all(CYC_FLAG);   // 起こされるまで寝ている
00012         //
00013         p1 = !p1;                   // ユーザコードはここに書く
00014         //
00015     }
00016 }
00017 
00018 int main (void) {      // mainスレッド
00019     thread.start(callback(my_thread)); // 関数をスレッドとして起動する
00020 
00021     while (true) {                  // スレッドの一つとして走る
00022         wait(0.01);                 // 待つことしかしてないのでかなり正確
00023         thread.flags_set(CYC_FLAG);     // 寝ているスレッドを起こす.この処理は一瞬
00024     }
00025 }
00026