お盆用コードだよ

Dependencies:   Servo mbed-rtos mbed

Files at this revision

API Documentation at this revision

Comitter:
Hatter
Date:
Tue Jun 24 09:04:21 2014 +0000
Child:
1:17b3afbf9278
Commit message:
OBON;

Changed in this revision

Servo.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo.lib	Tue Jun 24 09:04:21 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/simon/code/Servo/#36b69a7ced07
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Jun 24 09:04:21 2014 +0000
@@ -0,0 +1,120 @@
+/*
+* Servo motor program for OBON  by Tomoki Hokida
+*
+* Use rtos in this program
+*
+* RTOSをバリバリ使用しているのであしあらず
+* サーボを4つ使うことになったらSERVO_4をdefineしましょう
+*/
+
+#include "mbed.h"
+#include "Servo.h"
+#include "rtos.h"
+
+#define DEFAULT_R 50
+#define DEFAULT_L 50
+#define DEFAULT_U 50
+#define DEFAULT_D 50
+
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+
+#ifdef SERVO_4
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+#endif
+
+DigitalIn swU(p17);
+DigitalIn swD(p18);
+DigitalIn swR(p19);
+DigitalIn swL(p20);
+
+Servo obonU(p21);
+Servo obonR(p22);
+
+#ifdef SERVO_4
+Servo obonD(p23);
+Servo obonL(p24);
+#endif
+
+void obonThreadR(void const *argument){
+
+    for(int j=DEFAULT_R;;){
+
+        obonR = j/100.0;
+        
+         if((!swR)&&(j<100.0)){j++;}
+         if((!swL)&&(j>0)){j--;}
+         
+         led1 = !led1;
+         
+        Thread::wait(10);
+    }
+}
+
+void obonThreadU(void const *argument){
+    for(int k=DEFAULT_U; ;){
+        
+        obonU = k/100.0;
+        
+        if((!swU)&&(k<100.0)){k++;}
+        if((!swD)&&(k>0)){k--;}
+        
+        led2 = !led2;
+        
+        Thread::wait(10);
+    }
+}
+
+#ifdef SERVO_4
+
+void obonThreadL(void const *argument){
+    for(int i=DEFAULT_L;;){
+        
+        obonL = i/100.0;
+        
+        if((!swL)&&(i<100.0)){i++;}
+        if((!swR)&&(i>0)){i--;}
+        
+        led3 = !led3;
+        
+        Thread::wait(10);
+    }
+}
+
+void obonThreadD(void const *argument){
+    for(int l=DEFAULT_D;;){
+        
+        obonL = l/100.0;
+        
+        if((!swD)&&(l<=100.0)){l++;}
+        if((!swU)&&(l>=0)){l--;}
+        
+        led4 = !led4;
+        
+        Thread::wait(10);
+    }
+}
+
+
+#endif
+
+int main() {
+    
+    swU.mode(PullUp);
+    swD.mode(PullUp);
+    swL.mode(PullUp);
+    swR.mode(PullUp);
+    
+    Thread thread1(obonThreadU);
+    Thread thread2(obonThreadR);
+    
+    #ifdef SERVO_4
+        
+    Thread thread3(obonThreadD);
+    Thread thread4(obonThreadL);
+    
+    #endif
+    for(;;);
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Tue Jun 24 09:04:21 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed-rtos/#e98f5e27f346
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Jun 24 09:04:21 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/024bf7f99721
\ No newline at end of file