足上げセンサ八個版仮

Dependencies:   mbed

Fork of 4LegUpDown_8sense by Bチーム

Committer:
ryuna
Date:
Wed Aug 20 08:59:12 2014 +0000
Revision:
0:76ba33d3b4a6
Child:
1:807091115672
8 limit_switch wheel up

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryuna 0:76ba33d3b4a6 1 #include "mbed.h"
ryuna 0:76ba33d3b4a6 2 #define MOVE_TIME 0.11
ryuna 0:76ba33d3b4a6 3 #define WAIT_TIME 0.02
ryuna 0:76ba33d3b4a6 4 #define PWM_LEVEL 1.0// 11.1 / 7.4
ryuna 0:76ba33d3b4a6 5
ryuna 0:76ba33d3b4a6 6
ryuna 0:76ba33d3b4a6 7 /*
ryuna 0:76ba33d3b4a6 8 センサの数を八個で足一つに付き二つのセンサで足を上下させるプログラム.
ryuna 0:76ba33d3b4a6 9
ryuna 0:76ba33d3b4a6 10 はじめのリミットスイッチが押されてもう一度押されるまでの時間を計り現在の速さを概算してタイマー制御に役立てる
ryuna 0:76ba33d3b4a6 11
ryuna 0:76ba33d3b4a6 12
ryuna 0:76ba33d3b4a6 13 *//**/
ryuna 0:76ba33d3b4a6 14
ryuna 0:76ba33d3b4a6 15
ryuna 0:76ba33d3b4a6 16 Serial pc(USBTX,USBRX);
ryuna 0:76ba33d3b4a6 17
ryuna 0:76ba33d3b4a6 18 Timeout _toMotor[8];
ryuna 0:76ba33d3b4a6 19 Timeout _toWait[4];
ryuna 0:76ba33d3b4a6 20 DigitalIn limit[8] = {p5,p6,p7,p8,p9,p10,p11,p12 };
ryuna 0:76ba33d3b4a6 21 DigitalOut _doLed[4] = {LED1, LED2, LED3, LED4 };
ryuna 0:76ba33d3b4a6 22
ryuna 0:76ba33d3b4a6 23 BusOut _boMotor(p13, p14, p15, p16, p17, p18, p19, p20 );//four motors
ryuna 0:76ba33d3b4a6 24 //{left front, right front, left back ,right back } in sequence?
ryuna 0:76ba33d3b4a6 25 PwmOut _poPwm[4] = {p21, p22, p23, p24 };
ryuna 0:76ba33d3b4a6 26
ryuna 0:76ba33d3b4a6 27 /**more use binary number
ryuna 0:76ba33d3b4a6 28 0xA0 = 10100000
ryuna 0:76ba33d3b4a6 29 0x50 = 01010000
ryuna 0:76ba33d3b4a6 30 0x0A = 00001010
ryuna 0:76ba33d3b4a6 31 0x05 = 00000101
ryuna 0:76ba33d3b4a6 32 **/
ryuna 0:76ba33d3b4a6 33
ryuna 0:76ba33d3b4a6 34 volatile bool bWait[4] = {0};
ryuna 0:76ba33d3b4a6 35
ryuna 0:76ba33d3b4a6 36 void _atWaitStop0(){//atatch Time Stop0
ryuna 0:76ba33d3b4a6 37 //make delay time
ryuna 0:76ba33d3b4a6 38 bWait[0] = 0;
ryuna 0:76ba33d3b4a6 39
ryuna 0:76ba33d3b4a6 40 }
ryuna 0:76ba33d3b4a6 41
ryuna 0:76ba33d3b4a6 42 void _atWaitStop1(){//atatch Time Stop0
ryuna 0:76ba33d3b4a6 43 //make delay time
ryuna 0:76ba33d3b4a6 44 bWait[1] = 0;
ryuna 0:76ba33d3b4a6 45
ryuna 0:76ba33d3b4a6 46 }
ryuna 0:76ba33d3b4a6 47
ryuna 0:76ba33d3b4a6 48 void _atWaitStop2(){//atatch Time Stop0
ryuna 0:76ba33d3b4a6 49 //make delay time
ryuna 0:76ba33d3b4a6 50 bWait[2] = 0;
ryuna 0:76ba33d3b4a6 51
ryuna 0:76ba33d3b4a6 52 }
ryuna 0:76ba33d3b4a6 53
ryuna 0:76ba33d3b4a6 54 void _atWaitStop3(){//atatch Time Stop0
ryuna 0:76ba33d3b4a6 55 //make delay time
ryuna 0:76ba33d3b4a6 56 bWait[3] = 0;
ryuna 0:76ba33d3b4a6 57
ryuna 0:76ba33d3b4a6 58 }
ryuna 0:76ba33d3b4a6 59
ryuna 0:76ba33d3b4a6 60
ryuna 0:76ba33d3b4a6 61
ryuna 0:76ba33d3b4a6 62 void _atMotorStop0(){//atatch Motor Stop0
ryuna 0:76ba33d3b4a6 63
ryuna 0:76ba33d3b4a6 64 _boMotor = _boMotor & 0x7F;
ryuna 0:76ba33d3b4a6 65 //01111111 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 66 //left front leg up
ryuna 0:76ba33d3b4a6 67 _doLed[0] = 0;
ryuna 0:76ba33d3b4a6 68 }
ryuna 0:76ba33d3b4a6 69
ryuna 0:76ba33d3b4a6 70
ryuna 0:76ba33d3b4a6 71 void _atMotorStop1(){
ryuna 0:76ba33d3b4a6 72 _toWait[0].attach(&_atWaitStop0,WAIT_TIME);
ryuna 0:76ba33d3b4a6 73 _boMotor = _boMotor & 0xBF;
ryuna 0:76ba33d3b4a6 74 //10111111  指定ピンのみ変更
ryuna 0:76ba33d3b4a6 75 //left front leg down
ryuna 0:76ba33d3b4a6 76 _doLed[1] = 0;
ryuna 0:76ba33d3b4a6 77
ryuna 0:76ba33d3b4a6 78 }
ryuna 0:76ba33d3b4a6 79
ryuna 0:76ba33d3b4a6 80 void _atMotorStop2(){
ryuna 0:76ba33d3b4a6 81
ryuna 0:76ba33d3b4a6 82 _boMotor = _boMotor & 0xF7;
ryuna 0:76ba33d3b4a6 83 //11110111 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 84 //left back leg up
ryuna 0:76ba33d3b4a6 85 _doLed[2] = 0;
ryuna 0:76ba33d3b4a6 86
ryuna 0:76ba33d3b4a6 87 }
ryuna 0:76ba33d3b4a6 88
ryuna 0:76ba33d3b4a6 89 void _atMotorStop3(){
ryuna 0:76ba33d3b4a6 90 _toWait[1].attach(&_atWaitStop1,WAIT_TIME);
ryuna 0:76ba33d3b4a6 91 _boMotor = _boMotor & 0xFB;
ryuna 0:76ba33d3b4a6 92 //11111011 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 93 //left back leg down
ryuna 0:76ba33d3b4a6 94 _doLed[3] = 0;
ryuna 0:76ba33d3b4a6 95
ryuna 0:76ba33d3b4a6 96 }
ryuna 0:76ba33d3b4a6 97 void _atMotorStop4(){//atatch Motor Stop0
ryuna 0:76ba33d3b4a6 98
ryuna 0:76ba33d3b4a6 99 _boMotor = _boMotor & 0xDF;
ryuna 0:76ba33d3b4a6 100 //11011111 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 101 //right front leg up
ryuna 0:76ba33d3b4a6 102
ryuna 0:76ba33d3b4a6 103
ryuna 0:76ba33d3b4a6 104 }
ryuna 0:76ba33d3b4a6 105
ryuna 0:76ba33d3b4a6 106
ryuna 0:76ba33d3b4a6 107 void _atMotorStop5(){
ryuna 0:76ba33d3b4a6 108 _toWait[2].attach(&_atWaitStop2,WAIT_TIME);
ryuna 0:76ba33d3b4a6 109 _boMotor = _boMotor & 0xEF;
ryuna 0:76ba33d3b4a6 110 //11101111  指定ピンのみ変更
ryuna 0:76ba33d3b4a6 111 //right front leg down
ryuna 0:76ba33d3b4a6 112
ryuna 0:76ba33d3b4a6 113
ryuna 0:76ba33d3b4a6 114 }
ryuna 0:76ba33d3b4a6 115
ryuna 0:76ba33d3b4a6 116 void _atMotorStop6(){
ryuna 0:76ba33d3b4a6 117
ryuna 0:76ba33d3b4a6 118 _boMotor = _boMotor & 0xFD;
ryuna 0:76ba33d3b4a6 119 //11111101 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 120 //right back leg up
ryuna 0:76ba33d3b4a6 121
ryuna 0:76ba33d3b4a6 122 }
ryuna 0:76ba33d3b4a6 123
ryuna 0:76ba33d3b4a6 124 void _atMotorStop7(){
ryuna 0:76ba33d3b4a6 125 _toWait[3].attach(&_atWaitStop3,WAIT_TIME);
ryuna 0:76ba33d3b4a6 126 _boMotor = _boMotor & 0xFE;
ryuna 0:76ba33d3b4a6 127 //11111110 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 128 //right back leg down
ryuna 0:76ba33d3b4a6 129
ryuna 0:76ba33d3b4a6 130
ryuna 0:76ba33d3b4a6 131 }
ryuna 0:76ba33d3b4a6 132
ryuna 0:76ba33d3b4a6 133
ryuna 0:76ba33d3b4a6 134
ryuna 0:76ba33d3b4a6 135 int main() {
ryuna 0:76ba33d3b4a6 136
ryuna 0:76ba33d3b4a6 137 static bool bClim[8] = {1,1,1,1,1,1,1,1};//bool Check limit[]
ryuna 0:76ba33d3b4a6 138 static uint8_t u8Ct1[8] = {0},u8Ct2[8] = {1,1,1,1,1,1,1,1};//uint8_t Count{1,2}[]
ryuna 0:76ba33d3b4a6 139
ryuna 0:76ba33d3b4a6 140 limit[0].mode(PullUp);
ryuna 0:76ba33d3b4a6 141 limit[1].mode(PullUp);
ryuna 0:76ba33d3b4a6 142 limit[2].mode(PullUp);
ryuna 0:76ba33d3b4a6 143 limit[3].mode(PullUp);
ryuna 0:76ba33d3b4a6 144 limit[4].mode(PullUp);
ryuna 0:76ba33d3b4a6 145 limit[5].mode(PullUp);
ryuna 0:76ba33d3b4a6 146 limit[6].mode(PullUp);
ryuna 0:76ba33d3b4a6 147 limit[7].mode(PullUp);
ryuna 0:76ba33d3b4a6 148
ryuna 0:76ba33d3b4a6 149
ryuna 0:76ba33d3b4a6 150 wait(1);
ryuna 0:76ba33d3b4a6 151
ryuna 0:76ba33d3b4a6 152
ryuna 0:76ba33d3b4a6 153 /* pwm level setting */
ryuna 0:76ba33d3b4a6 154 _poPwm[0] = PWM_LEVEL ;
ryuna 0:76ba33d3b4a6 155 _poPwm[1] = PWM_LEVEL ;
ryuna 0:76ba33d3b4a6 156 _poPwm[2] = PWM_LEVEL ;
ryuna 0:76ba33d3b4a6 157 _poPwm[3] = PWM_LEVEL ;
ryuna 0:76ba33d3b4a6 158 /* */
ryuna 0:76ba33d3b4a6 159
ryuna 0:76ba33d3b4a6 160
ryuna 0:76ba33d3b4a6 161 while(1){
ryuna 0:76ba33d3b4a6 162 /*左の方-リミットスイッチ0~3*/
ryuna 0:76ba33d3b4a6 163 if(!limit[0] && !bClim[0]){
ryuna 0:76ba33d3b4a6 164
ryuna 0:76ba33d3b4a6 165 /* 1個目*/
ryuna 0:76ba33d3b4a6 166 if(!bWait[0] && !u8Ct1[0] && !u8Ct1[1]){
ryuna 0:76ba33d3b4a6 167 u8Ct1[0] = 1;
ryuna 0:76ba33d3b4a6 168 //legs up
ryuna 0:76ba33d3b4a6 169 _toMotor[0].attach(&_atMotorStop0,MOVE_TIME);
ryuna 0:76ba33d3b4a6 170 _boMotor = _boMotor | 0x80;//10000000
ryuna 0:76ba33d3b4a6 171 _doLed[0] = 1;
ryuna 0:76ba33d3b4a6 172
ryuna 0:76ba33d3b4a6 173 }else if(u8Ct1[0]){
ryuna 0:76ba33d3b4a6 174 u8Ct1[0] = 2;
ryuna 0:76ba33d3b4a6 175
ryuna 0:76ba33d3b4a6 176 }else if((u8Ct1[1] == u8Ct2[0])){
ryuna 0:76ba33d3b4a6 177 u8Ct1[1]=0;
ryuna 0:76ba33d3b4a6 178 u8Ct2[0]=1;
ryuna 0:76ba33d3b4a6 179 //legs down
ryuna 0:76ba33d3b4a6 180 _toMotor[1].attach(&_atMotorStop1,MOVE_TIME);
ryuna 0:76ba33d3b4a6 181 _boMotor = _boMotor | 0x40;//0x40 = 01000000
ryuna 0:76ba33d3b4a6 182 _doLed[1] = 1;
ryuna 0:76ba33d3b4a6 183 bWait[0] = 1;
ryuna 0:76ba33d3b4a6 184
ryuna 0:76ba33d3b4a6 185 }else{
ryuna 0:76ba33d3b4a6 186 u8Ct2[0] = 2;
ryuna 0:76ba33d3b4a6 187 }
ryuna 0:76ba33d3b4a6 188 bClim[0] = 1;
ryuna 0:76ba33d3b4a6 189
ryuna 0:76ba33d3b4a6 190 }else if(limit[0]){
ryuna 0:76ba33d3b4a6 191 bClim[0] = 0;
ryuna 0:76ba33d3b4a6 192 }
ryuna 0:76ba33d3b4a6 193
ryuna 0:76ba33d3b4a6 194
ryuna 0:76ba33d3b4a6 195 if(!limit[1] && !bClim[1]){
ryuna 0:76ba33d3b4a6 196
ryuna 0:76ba33d3b4a6 197 /* 2個目*/
ryuna 0:76ba33d3b4a6 198 if(!bWait[0] && !u8Ct1[1] && !u8Ct1[0]){
ryuna 0:76ba33d3b4a6 199 u8Ct1[1] = 1;
ryuna 0:76ba33d3b4a6 200 //legs up
ryuna 0:76ba33d3b4a6 201 _toMotor[0].attach(&_atMotorStop0,MOVE_TIME);
ryuna 0:76ba33d3b4a6 202 _boMotor = _boMotor | 0x80;// 10000000
ryuna 0:76ba33d3b4a6 203 _doLed[0] = 1;
ryuna 0:76ba33d3b4a6 204
ryuna 0:76ba33d3b4a6 205 }else if(u8Ct1[1]){
ryuna 0:76ba33d3b4a6 206 u8Ct1[1] = 2;
ryuna 0:76ba33d3b4a6 207
ryuna 0:76ba33d3b4a6 208 }else if((u8Ct1[0] == u8Ct2[1])){
ryuna 0:76ba33d3b4a6 209 u8Ct1[0]=0;
ryuna 0:76ba33d3b4a6 210 u8Ct2[1]=1;
ryuna 0:76ba33d3b4a6 211 //legs down
ryuna 0:76ba33d3b4a6 212 _toMotor[1].attach(&_atMotorStop1,MOVE_TIME);
ryuna 0:76ba33d3b4a6 213 _boMotor = _boMotor | 0x40;// 01000000
ryuna 0:76ba33d3b4a6 214 _doLed[1] = 1;
ryuna 0:76ba33d3b4a6 215 bWait[0] = 1;
ryuna 0:76ba33d3b4a6 216
ryuna 0:76ba33d3b4a6 217 }else{
ryuna 0:76ba33d3b4a6 218 u8Ct2[1] = 2;
ryuna 0:76ba33d3b4a6 219
ryuna 0:76ba33d3b4a6 220 }
ryuna 0:76ba33d3b4a6 221 bClim[1] = 1;
ryuna 0:76ba33d3b4a6 222
ryuna 0:76ba33d3b4a6 223 }else if(limit[1]){
ryuna 0:76ba33d3b4a6 224 bClim[1] = 0;
ryuna 0:76ba33d3b4a6 225 }
ryuna 0:76ba33d3b4a6 226
ryuna 0:76ba33d3b4a6 227
ryuna 0:76ba33d3b4a6 228 if(!limit[2] && !bClim[2]){
ryuna 0:76ba33d3b4a6 229
ryuna 0:76ba33d3b4a6 230 /* 3個目*/
ryuna 0:76ba33d3b4a6 231 if(!bWait[1] && !u8Ct1[2] && !u8Ct1[3]){
ryuna 0:76ba33d3b4a6 232 u8Ct1[2] = 1;
ryuna 0:76ba33d3b4a6 233 //legs up
ryuna 0:76ba33d3b4a6 234 _toMotor[2].attach(&_atMotorStop2,MOVE_TIME);
ryuna 0:76ba33d3b4a6 235 _boMotor = _boMotor | 0x08;//00001000
ryuna 0:76ba33d3b4a6 236 _doLed[2] = 1;
ryuna 0:76ba33d3b4a6 237 }else if(u8Ct1[2]){
ryuna 0:76ba33d3b4a6 238 u8Ct1[2] = 2;
ryuna 0:76ba33d3b4a6 239
ryuna 0:76ba33d3b4a6 240 }else if((u8Ct1[3] == u8Ct2[2])){
ryuna 0:76ba33d3b4a6 241 u8Ct1[3]=0;
ryuna 0:76ba33d3b4a6 242 u8Ct2[2]=1;
ryuna 0:76ba33d3b4a6 243 //legs down
ryuna 0:76ba33d3b4a6 244 _toMotor[3].attach(&_atMotorStop3,MOVE_TIME);
ryuna 0:76ba33d3b4a6 245 _boMotor = _boMotor | 0x04;//00000100
ryuna 0:76ba33d3b4a6 246 _doLed[3] = 1;
ryuna 0:76ba33d3b4a6 247 bWait[1] = 1;
ryuna 0:76ba33d3b4a6 248 }else{
ryuna 0:76ba33d3b4a6 249 u8Ct2[2] = 2;
ryuna 0:76ba33d3b4a6 250 }
ryuna 0:76ba33d3b4a6 251
ryuna 0:76ba33d3b4a6 252 bClim[2] = 1;
ryuna 0:76ba33d3b4a6 253 }else if(limit[2]){
ryuna 0:76ba33d3b4a6 254 bClim[2] = 0;
ryuna 0:76ba33d3b4a6 255 }
ryuna 0:76ba33d3b4a6 256
ryuna 0:76ba33d3b4a6 257
ryuna 0:76ba33d3b4a6 258
ryuna 0:76ba33d3b4a6 259 if(!limit[3] && !bClim[3]){
ryuna 0:76ba33d3b4a6 260 /* 4個目*/
ryuna 0:76ba33d3b4a6 261 if(!bWait[1] && !u8Ct1[3] && !u8Ct1[2]){
ryuna 0:76ba33d3b4a6 262 u8Ct1[3] = 1;
ryuna 0:76ba33d3b4a6 263 //leg up
ryuna 0:76ba33d3b4a6 264 _toMotor[2].attach(&_atMotorStop2,MOVE_TIME);
ryuna 0:76ba33d3b4a6 265 _boMotor = _boMotor | 0x08;// 00001000
ryuna 0:76ba33d3b4a6 266 _doLed[2] = 1;
ryuna 0:76ba33d3b4a6 267
ryuna 0:76ba33d3b4a6 268 }else if(u8Ct1[3]){
ryuna 0:76ba33d3b4a6 269 u8Ct1[3] = 2;
ryuna 0:76ba33d3b4a6 270
ryuna 0:76ba33d3b4a6 271 }else if((u8Ct1[2] == u8Ct2[3])){
ryuna 0:76ba33d3b4a6 272 u8Ct1[2]=0;
ryuna 0:76ba33d3b4a6 273 u8Ct2[3]=1;
ryuna 0:76ba33d3b4a6 274 //leg down
ryuna 0:76ba33d3b4a6 275 _toMotor[3].attach(&_atMotorStop3,MOVE_TIME);
ryuna 0:76ba33d3b4a6 276 _boMotor = _boMotor | 0x04;//00000100
ryuna 0:76ba33d3b4a6 277 _doLed[3] = 1;
ryuna 0:76ba33d3b4a6 278 bWait[1] = 1;
ryuna 0:76ba33d3b4a6 279 }else{
ryuna 0:76ba33d3b4a6 280 u8Ct2[3] = 2;
ryuna 0:76ba33d3b4a6 281 }
ryuna 0:76ba33d3b4a6 282
ryuna 0:76ba33d3b4a6 283 bClim[3] = 1;
ryuna 0:76ba33d3b4a6 284 }else if(limit[3]){
ryuna 0:76ba33d3b4a6 285 bClim[3] = 0;
ryuna 0:76ba33d3b4a6 286 }
ryuna 0:76ba33d3b4a6 287
ryuna 0:76ba33d3b4a6 288
ryuna 0:76ba33d3b4a6 289 /*右の方 リミットスイッチ4~7 */
ryuna 0:76ba33d3b4a6 290
ryuna 0:76ba33d3b4a6 291 if(!limit[4] && !bClim[4]){
ryuna 0:76ba33d3b4a6 292
ryuna 0:76ba33d3b4a6 293 /* 5個目*/
ryuna 0:76ba33d3b4a6 294 if(!bWait[2] && !u8Ct1[4] && !u8Ct1[5]){
ryuna 0:76ba33d3b4a6 295 u8Ct1[4] = 1;
ryuna 0:76ba33d3b4a6 296 //leg up
ryuna 0:76ba33d3b4a6 297 _toMotor[4].attach(&_atMotorStop4,MOVE_TIME);
ryuna 0:76ba33d3b4a6 298 _boMotor = _boMotor | 0x20;//00100000
ryuna 0:76ba33d3b4a6 299
ryuna 0:76ba33d3b4a6 300 }else if(u8Ct1[4]){
ryuna 0:76ba33d3b4a6 301 u8Ct1[4] = 2;
ryuna 0:76ba33d3b4a6 302
ryuna 0:76ba33d3b4a6 303 }else if((u8Ct1[5] == u8Ct2[4])){
ryuna 0:76ba33d3b4a6 304 u8Ct1[5]=0;
ryuna 0:76ba33d3b4a6 305 u8Ct2[4]=1;
ryuna 0:76ba33d3b4a6 306 //leg down
ryuna 0:76ba33d3b4a6 307 _toMotor[5].attach(&_atMotorStop5,MOVE_TIME);
ryuna 0:76ba33d3b4a6 308 _boMotor = _boMotor | 0x10;//0x10 = 00010000
ryuna 0:76ba33d3b4a6 309 bWait[2] = 1;
ryuna 0:76ba33d3b4a6 310
ryuna 0:76ba33d3b4a6 311 }else{
ryuna 0:76ba33d3b4a6 312 u8Ct2[4] = 2;
ryuna 0:76ba33d3b4a6 313 }
ryuna 0:76ba33d3b4a6 314 bClim[4] = 1;
ryuna 0:76ba33d3b4a6 315
ryuna 0:76ba33d3b4a6 316 }else if(limit[4]){
ryuna 0:76ba33d3b4a6 317 bClim[4] = 0;
ryuna 0:76ba33d3b4a6 318 }
ryuna 0:76ba33d3b4a6 319
ryuna 0:76ba33d3b4a6 320
ryuna 0:76ba33d3b4a6 321 if(!limit[5] && !bClim[5]){
ryuna 0:76ba33d3b4a6 322
ryuna 0:76ba33d3b4a6 323 /* 6個目*/
ryuna 0:76ba33d3b4a6 324 if(!bWait[2] && !u8Ct1[5] && !u8Ct1[4]){
ryuna 0:76ba33d3b4a6 325 u8Ct1[5] = 1;
ryuna 0:76ba33d3b4a6 326 //leg up
ryuna 0:76ba33d3b4a6 327 _toMotor[4].attach(&_atMotorStop4,MOVE_TIME);
ryuna 0:76ba33d3b4a6 328 _boMotor = _boMotor | 0x20;// 00100000
ryuna 0:76ba33d3b4a6 329
ryuna 0:76ba33d3b4a6 330 }else if(u8Ct1[5]){
ryuna 0:76ba33d3b4a6 331 u8Ct1[5] = 2;
ryuna 0:76ba33d3b4a6 332
ryuna 0:76ba33d3b4a6 333 }else if((u8Ct1[4] == u8Ct2[5])){
ryuna 0:76ba33d3b4a6 334 u8Ct1[4]=0;
ryuna 0:76ba33d3b4a6 335 u8Ct2[5]=1;
ryuna 0:76ba33d3b4a6 336 //leg down
ryuna 0:76ba33d3b4a6 337 _toMotor[5].attach(&_atMotorStop5,MOVE_TIME);
ryuna 0:76ba33d3b4a6 338 _boMotor = _boMotor | 0x10;// 00010000
ryuna 0:76ba33d3b4a6 339 bWait[2] = 1;
ryuna 0:76ba33d3b4a6 340
ryuna 0:76ba33d3b4a6 341 }else{
ryuna 0:76ba33d3b4a6 342 u8Ct2[5] = 2;
ryuna 0:76ba33d3b4a6 343
ryuna 0:76ba33d3b4a6 344 }
ryuna 0:76ba33d3b4a6 345 bClim[5] = 1;
ryuna 0:76ba33d3b4a6 346
ryuna 0:76ba33d3b4a6 347 }else if(limit[5]){
ryuna 0:76ba33d3b4a6 348 bClim[5] = 0;
ryuna 0:76ba33d3b4a6 349 }
ryuna 0:76ba33d3b4a6 350
ryuna 0:76ba33d3b4a6 351
ryuna 0:76ba33d3b4a6 352 if(!limit[6] && !bClim[6]){
ryuna 0:76ba33d3b4a6 353
ryuna 0:76ba33d3b4a6 354 /* 7個目*/
ryuna 0:76ba33d3b4a6 355 if(!bWait[3] && !u8Ct1[6] && !u8Ct1[7]){
ryuna 0:76ba33d3b4a6 356 u8Ct1[6] = 1;
ryuna 0:76ba33d3b4a6 357 //legs up
ryuna 0:76ba33d3b4a6 358 _toMotor[6].attach(&_atMotorStop6,MOVE_TIME);
ryuna 0:76ba33d3b4a6 359 _boMotor = _boMotor | 0x02;//00000010
ryuna 0:76ba33d3b4a6 360
ryuna 0:76ba33d3b4a6 361 }else if(u8Ct1[6]){
ryuna 0:76ba33d3b4a6 362 u8Ct1[6] = 2;
ryuna 0:76ba33d3b4a6 363
ryuna 0:76ba33d3b4a6 364 }else if((u8Ct1[7] == u8Ct2[6])){
ryuna 0:76ba33d3b4a6 365 u8Ct1[7]=0;
ryuna 0:76ba33d3b4a6 366 u8Ct2[6]=1;
ryuna 0:76ba33d3b4a6 367 //leg down
ryuna 0:76ba33d3b4a6 368 _toMotor[7].attach(&_atMotorStop7,MOVE_TIME);
ryuna 0:76ba33d3b4a6 369 _boMotor = _boMotor | 0x01;//00000001
ryuna 0:76ba33d3b4a6 370 bWait[3] = 1;
ryuna 0:76ba33d3b4a6 371 }else{
ryuna 0:76ba33d3b4a6 372 u8Ct2[6] = 2;
ryuna 0:76ba33d3b4a6 373 }
ryuna 0:76ba33d3b4a6 374
ryuna 0:76ba33d3b4a6 375 bClim[6] = 1;
ryuna 0:76ba33d3b4a6 376 }else if(limit[6]){
ryuna 0:76ba33d3b4a6 377 bClim[6] = 0;
ryuna 0:76ba33d3b4a6 378 }
ryuna 0:76ba33d3b4a6 379
ryuna 0:76ba33d3b4a6 380
ryuna 0:76ba33d3b4a6 381
ryuna 0:76ba33d3b4a6 382 if(!limit[7] && !bClim[7]){
ryuna 0:76ba33d3b4a6 383 /* 8個目*/
ryuna 0:76ba33d3b4a6 384 if(!bWait[3] && !u8Ct1[7] && !u8Ct1[6]){
ryuna 0:76ba33d3b4a6 385 u8Ct1[7] = 1;
ryuna 0:76ba33d3b4a6 386 //leg up
ryuna 0:76ba33d3b4a6 387 _toMotor[6].attach(&_atMotorStop6,MOVE_TIME);
ryuna 0:76ba33d3b4a6 388 _boMotor = _boMotor | 0x02;// 00000010
ryuna 0:76ba33d3b4a6 389 //_doLed[6] = 1;
ryuna 0:76ba33d3b4a6 390
ryuna 0:76ba33d3b4a6 391 }else if(u8Ct1[7]){
ryuna 0:76ba33d3b4a6 392 u8Ct1[7] = 2;
ryuna 0:76ba33d3b4a6 393
ryuna 0:76ba33d3b4a6 394 }else if((u8Ct1[6] == u8Ct2[7])){
ryuna 0:76ba33d3b4a6 395 u8Ct1[6]=0;
ryuna 0:76ba33d3b4a6 396 u8Ct2[7]=1;
ryuna 0:76ba33d3b4a6 397 //leg down
ryuna 0:76ba33d3b4a6 398 _toMotor[7].attach(&_atMotorStop7,MOVE_TIME);
ryuna 0:76ba33d3b4a6 399 _boMotor = _boMotor | 0x01;//00000001
ryuna 0:76ba33d3b4a6 400 bWait[3] = 1;
ryuna 0:76ba33d3b4a6 401
ryuna 0:76ba33d3b4a6 402 }else{
ryuna 0:76ba33d3b4a6 403 u8Ct2[7] = 2;
ryuna 0:76ba33d3b4a6 404 }
ryuna 0:76ba33d3b4a6 405
ryuna 0:76ba33d3b4a6 406 bClim[7] = 1;
ryuna 0:76ba33d3b4a6 407 }else if(limit[7]){
ryuna 0:76ba33d3b4a6 408 bClim[7] = 0;
ryuna 0:76ba33d3b4a6 409 }
ryuna 0:76ba33d3b4a6 410
ryuna 0:76ba33d3b4a6 411 }
ryuna 0:76ba33d3b4a6 412 }