腕のプログラムです.

Dependencies:   mbed TextLCD MultiSerial Pswitch

Revision:
6:606507fc8852
Parent:
5:c2a278842131
Child:
7:c418a0d929b1
--- a/main.cpp	Fri Oct 03 10:33:37 2014 +0000
+++ b/main.cpp	Fri Oct 03 12:30:58 2014 +0000
@@ -84,7 +84,9 @@
         if(GetBit(INdata[0], 2)==OFF) StopLeaving();//停止
         
         if((GetBit(INdata[0], 1)+GetBit(INdata[0], 2))==1){//同時押し防止
-            if(GetBit(INdata[0], 1)==true) CenterCatch();//中央のリミットスイッチがうまく動作しなかった場合の保険
+            if(GetBit(INdata[0], 1)==true){
+                CenterCatch();//中央のリミットスイッチがうまく動作しなかった場合の保険
+            }
             if(GetBit(INdata[0], 2)==true){//腕を広げる動作はマニュアル操作
                 StopCatching();//停止
                 Touch.detach();//ワンショットタイマー停止
@@ -195,7 +197,7 @@
 }
 void StartCatching(void){//掴む(リミットスイッチが押されてなければ)
 
-    if((!HandSW[R])&&(!HandSW[L])){
+    if((!HandSW[R])||(!HandSW[L])){
         Hand[R][Close] = Hand[L][Close] = OFF;
     }
     else{
@@ -215,12 +217,14 @@
 }
 void RightCatch(void){//右腕のリミットスイッチ
     if((!HandSW[R])&&(!HandSW[L])){//どちらも押されたら停止
+        
         StopCatching();//停止
         Touch.detach();//ワンショットタイマー停止
     }
 }
 void LeftCatch(void){//左腕のリミットスイッチ
     if((!HandSW[R])&&(!HandSW[L])){//どちらも押されたら停止
+        
         StopCatching();//停止
         Touch.detach();//ワンショットタイマー停止
     }
@@ -234,6 +238,7 @@
     }
     
 }
+    
 void illumination(void){//literally
     count++;
     LED = count;
@@ -261,6 +266,7 @@
     HandSW[R].fall(RightCatch);
     HandSW[L].fall(LeftCatch);
     HandSW[C].fall(CenterCatch);
+    HandSW[C].rise(StopCatching);
     
     OneEighty[R].mode(PullUp);
     OneEighty[L].mode(PullUp);