![](/media/cache/profiles/cynthia_sadaharuaoki_square.png.50x50_q85.png)
Sample code for Mechatronics class
main.cpp@7:49b71bc18049, 2019-10-17 (annotated)
- Committer:
- ykuroda
- Date:
- Thu Oct 17 09:10:11 2019 +0000
- Revision:
- 7:49b71bc18049
- Parent:
- 5:476186ff82cf
1;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ykuroda | 7:49b71bc18049 | 1 | // たぶん一番簡単な時間管理プログラム - OS5 |
ykuroda | 7:49b71bc18049 | 2 | // 2019.10.17 ... Y.Kuroda |
emilmont | 1:6a8fcc666593 | 3 | #include "mbed.h" |
mab5449 | 5:476186ff82cf | 4 | Thread thread; |
ykuroda | 7:49b71bc18049 | 5 | DigitalOut p1(LED1); |
ykuroda | 7:49b71bc18049 | 6 | #define CYC_FLAG 1 |
emilmont | 1:6a8fcc666593 | 7 | |
ykuroda | 7:49b71bc18049 | 8 | void my_thread() // スレッドにする関数.正確な時間間隔で起こされる |
ykuroda | 7:49b71bc18049 | 9 | { |
emilmont | 1:6a8fcc666593 | 10 | while (true) { |
ykuroda | 7:49b71bc18049 | 11 | ThisThread::flags_wait_all(CYC_FLAG); // 起こされるまで寝ている |
ykuroda | 7:49b71bc18049 | 12 | // |
ykuroda | 7:49b71bc18049 | 13 | p1 = !p1; // ユーザコードはここに書く |
ykuroda | 7:49b71bc18049 | 14 | // |
emilmont | 1:6a8fcc666593 | 15 | } |
emilmont | 1:6a8fcc666593 | 16 | } |
emilmont | 1:6a8fcc666593 | 17 | |
ykuroda | 7:49b71bc18049 | 18 | int main (void) { // mainスレッド |
ykuroda | 7:49b71bc18049 | 19 | thread.start(callback(my_thread)); // 関数をスレッドとして起動する |
Bartek Szatkowski |
4:fc60c5b6c104 | 20 | |
ykuroda | 7:49b71bc18049 | 21 | while (true) { // スレッドの一つとして走る |
ykuroda | 7:49b71bc18049 | 22 | wait(0.01); // 待つことしかしてないのでかなり正確 |
ykuroda | 7:49b71bc18049 | 23 | thread.flags_set(CYC_FLAG); // 寝ているスレッドを起こす.この処理は一瞬 |
emilmont | 1:6a8fcc666593 | 24 | } |
emilmont | 1:6a8fcc666593 | 25 | } |
ykuroda | 7:49b71bc18049 | 26 |