mbed_robotcar / Mbed OS mbed_signal
Revision:
0:c8547914b033
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jul 09 07:10:52 2020 +0000
@@ -0,0 +1,97 @@
+#include "mbed.h"
+#include "rtos.h"
+
+DigitalOut led1(p17);
+DigitalOut led2(p18);
+DigitalOut led3(p19);
+DigitalOut led4(p20);
+DigitalOut led5(p27);
+DigitalOut led6(p28);
+DigitalOut led7(p29);
+DigitalOut led8(p30);
+
+void led1_thread(void const *arg){
+    while(1){
+        Thread::signal_wait(0x1);
+        led1 = !led1;
+    }
+}
+
+void led2_thread(void const *arg){
+    while(1){
+        Thread::signal_wait(0x1);
+        led2 = !led2;
+    }
+}
+
+void led3_thread(void const *arg){
+    while(1){
+        Thread::signal_wait(0x1);
+        led3 = !led3;
+    }
+}
+
+void led4_thread(void const *arg){
+    while(1){
+        Thread::signal_wait(0x1);
+        led4 = !led4;
+    }
+}
+
+void led5_thread(void const *arg){
+    while(1){
+        Thread::signal_wait(0x2);
+        led5 = !led5;
+    }
+}
+
+void led6_thread(void const *arg){
+    while(1){
+        Thread::signal_wait(0x2);
+        led6 = !led6;
+    }
+}
+
+void led7_thread(void const *arg){
+    while(1){
+        Thread::signal_wait(0x2);
+        led7 = !led7;
+    }
+}
+
+void led8_thread(void const *arg){
+    while(1){
+        Thread::signal_wait(0x2);
+        led8 = !led8;
+    }
+}
+
+int main(){
+    Thread thread1(led1_thread);
+    Thread thread2(led2_thread);
+    Thread thread3(led3_thread);
+    Thread thread4(led4_thread);
+    Thread thread5(led5_thread);
+    Thread thread6(led6_thread);
+    Thread thread7(led7_thread);
+    Thread thread8(led8_thread);
+    
+    while(1){
+        thread1.signal_set(0x1);
+        ThisThread::sleep_for(10);
+        thread2.signal_set(0x1);
+        ThisThread::sleep_for(10);
+        thread3.signal_set(0x1);
+        ThisThread::sleep_for(10);
+        thread4.signal_set(0x1);
+        ThisThread::sleep_for(10);
+        thread5.signal_set(0x2);
+        ThisThread::sleep_for(10);
+        thread6.signal_set(0x2);
+        ThisThread::sleep_for(10);
+        thread7.signal_set(0x2);
+        ThisThread::sleep_for(10);
+        thread8.signal_set(0x2);
+        ThisThread::sleep_for(10);
+    }
+}
\ No newline at end of file