腕のプログラムです.
Dependencies: mbed TextLCD MultiSerial Pswitch
Diff: main.cpp
- 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);