足上げセンサ八個版仮

Dependencies:   mbed

Fork of 4LegUpDown_8sense by Bチーム

Committer:
ryuna
Date:
Thu Aug 21 09:45:46 2014 +0000
Revision:
1:807091115672
Parent:
0:76ba33d3b4a6
Child:
2:89cf1003e119
pin fall attach use version & noise countermeasure enhancement

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 1:807091115672 12 pin rise/fall attach use
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 1:807091115672 20
ryuna 1:807091115672 21 DigitalIn limit[8] = {NC,NC,NC,NC,NC,NC,NC,NC };
ryuna 1:807091115672 22 InterruptIn _iiLsw[8] = {p5,p6,p7,p8,p9,p10,p11,p12 };/*swicth is a-contact*/
ryuna 1:807091115672 23
ryuna 0:76ba33d3b4a6 24 DigitalOut _doLed[4] = {LED1, LED2, LED3, LED4 };
ryuna 0:76ba33d3b4a6 25
ryuna 0:76ba33d3b4a6 26 BusOut _boMotor(p13, p14, p15, p16, p17, p18, p19, p20 );//four motors
ryuna 1:807091115672 27 //{left front, right front, left back ,right back } in sequeNCe
ryuna 0:76ba33d3b4a6 28 PwmOut _poPwm[4] = {p21, p22, p23, p24 };
ryuna 0:76ba33d3b4a6 29
ryuna 0:76ba33d3b4a6 30 /**more use binary number
ryuna 0:76ba33d3b4a6 31 0xA0 = 10100000
ryuna 0:76ba33d3b4a6 32 0x50 = 01010000
ryuna 0:76ba33d3b4a6 33 0x0A = 00001010
ryuna 0:76ba33d3b4a6 34 0x05 = 00000101
ryuna 0:76ba33d3b4a6 35 **/
ryuna 0:76ba33d3b4a6 36
ryuna 0:76ba33d3b4a6 37 volatile bool bWait[4] = {0};
ryuna 1:807091115672 38 volatile bool bMotor[8] = {0};//名前が似ているものがあるので注意
ryuna 1:807091115672 39 volatile uint8_t u8Ct1[8] = {0},u8Ct2[8] = {1,1,1,1,1,1,1,1};//uint8_t Count{1,2}[]
ryuna 1:807091115672 40
ryuna 1:807091115672 41
ryuna 1:807091115672 42 enum {LFU = 0,LFD,RFU,RFD,LBU,LBD,RBU,RBD};
ryuna 1:807091115672 43 /*
ryuna 1:807091115672 44 bMotor = {
ryuna 1:807091115672 45 LeftFrontUp, LeftFrontDown,
ryuna 1:807091115672 46 RightFrontUp, RightFrontDown,
ryuna 1:807091115672 47 LeftBackUp, LeftBackDown,
ryuna 1:807091115672 48 RightBackUp, RightBackDown
ryuna 1:807091115672 49 };
ryuna 1:807091115672 50 */
ryuna 1:807091115672 51
ryuna 1:807091115672 52 void Motor_state(){
ryuna 1:807091115672 53 /*
ryuna 1:807091115672 54 uint8_t GetBit(uint8_t n, uint8_t bit)
ryuna 1:807091115672 55 return (n >>(bit-1))%2;
ryuna 1:807091115672 56 }by takamastu
ryuna 1:807091115672 57 */
ryuna 1:807091115672 58 uint8_t i;
ryuna 1:807091115672 59
ryuna 1:807091115672 60 for (i = 0; i < 8 ; i++){
ryuna 1:807091115672 61 bMotor[i] = ( _boMotor >> i )%2;
ryuna 1:807091115672 62 }
ryuna 1:807091115672 63
ryuna 1:807091115672 64 }
ryuna 0:76ba33d3b4a6 65
ryuna 0:76ba33d3b4a6 66 void _atWaitStop0(){//atatch Time Stop0
ryuna 0:76ba33d3b4a6 67 //make delay time
ryuna 0:76ba33d3b4a6 68 bWait[0] = 0;
ryuna 0:76ba33d3b4a6 69
ryuna 0:76ba33d3b4a6 70 }
ryuna 0:76ba33d3b4a6 71
ryuna 0:76ba33d3b4a6 72 void _atWaitStop1(){//atatch Time Stop0
ryuna 0:76ba33d3b4a6 73 //make delay time
ryuna 0:76ba33d3b4a6 74 bWait[1] = 0;
ryuna 0:76ba33d3b4a6 75
ryuna 0:76ba33d3b4a6 76 }
ryuna 0:76ba33d3b4a6 77
ryuna 0:76ba33d3b4a6 78 void _atWaitStop2(){//atatch Time Stop0
ryuna 0:76ba33d3b4a6 79 //make delay time
ryuna 0:76ba33d3b4a6 80 bWait[2] = 0;
ryuna 0:76ba33d3b4a6 81
ryuna 0:76ba33d3b4a6 82 }
ryuna 0:76ba33d3b4a6 83
ryuna 0:76ba33d3b4a6 84 void _atWaitStop3(){//atatch Time Stop0
ryuna 0:76ba33d3b4a6 85 //make delay time
ryuna 0:76ba33d3b4a6 86 bWait[3] = 0;
ryuna 0:76ba33d3b4a6 87
ryuna 0:76ba33d3b4a6 88 }
ryuna 0:76ba33d3b4a6 89
ryuna 0:76ba33d3b4a6 90
ryuna 0:76ba33d3b4a6 91
ryuna 0:76ba33d3b4a6 92 void _atMotorStop0(){//atatch Motor Stop0
ryuna 0:76ba33d3b4a6 93
ryuna 0:76ba33d3b4a6 94 _boMotor = _boMotor & 0x7F;
ryuna 0:76ba33d3b4a6 95 //01111111 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 96 //left front leg up
ryuna 0:76ba33d3b4a6 97 _doLed[0] = 0;
ryuna 0:76ba33d3b4a6 98 }
ryuna 0:76ba33d3b4a6 99
ryuna 0:76ba33d3b4a6 100
ryuna 0:76ba33d3b4a6 101 void _atMotorStop1(){
ryuna 0:76ba33d3b4a6 102 _toWait[0].attach(&_atWaitStop0,WAIT_TIME);
ryuna 0:76ba33d3b4a6 103 _boMotor = _boMotor & 0xBF;
ryuna 0:76ba33d3b4a6 104 //10111111  指定ピンのみ変更
ryuna 0:76ba33d3b4a6 105 //left front leg down
ryuna 1:807091115672 106 _doLed[0] = 0;
ryuna 0:76ba33d3b4a6 107
ryuna 0:76ba33d3b4a6 108 }
ryuna 0:76ba33d3b4a6 109
ryuna 0:76ba33d3b4a6 110 void _atMotorStop2(){
ryuna 0:76ba33d3b4a6 111
ryuna 0:76ba33d3b4a6 112 _boMotor = _boMotor & 0xF7;
ryuna 0:76ba33d3b4a6 113 //11110111 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 114 //left back leg up
ryuna 1:807091115672 115 _doLed[1] = 0;
ryuna 0:76ba33d3b4a6 116
ryuna 0:76ba33d3b4a6 117 }
ryuna 0:76ba33d3b4a6 118
ryuna 0:76ba33d3b4a6 119 void _atMotorStop3(){
ryuna 0:76ba33d3b4a6 120 _toWait[1].attach(&_atWaitStop1,WAIT_TIME);
ryuna 0:76ba33d3b4a6 121 _boMotor = _boMotor & 0xFB;
ryuna 0:76ba33d3b4a6 122 //11111011 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 123 //left back leg down
ryuna 1:807091115672 124 _doLed[1] = 0;
ryuna 0:76ba33d3b4a6 125
ryuna 0:76ba33d3b4a6 126 }
ryuna 0:76ba33d3b4a6 127 void _atMotorStop4(){//atatch Motor Stop0
ryuna 0:76ba33d3b4a6 128
ryuna 0:76ba33d3b4a6 129 _boMotor = _boMotor & 0xDF;
ryuna 0:76ba33d3b4a6 130 //11011111 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 131 //right front leg up
ryuna 1:807091115672 132 _doLed[2] = 0;
ryuna 0:76ba33d3b4a6 133
ryuna 0:76ba33d3b4a6 134 }
ryuna 0:76ba33d3b4a6 135
ryuna 0:76ba33d3b4a6 136
ryuna 0:76ba33d3b4a6 137 void _atMotorStop5(){
ryuna 0:76ba33d3b4a6 138 _toWait[2].attach(&_atWaitStop2,WAIT_TIME);
ryuna 0:76ba33d3b4a6 139 _boMotor = _boMotor & 0xEF;
ryuna 0:76ba33d3b4a6 140 //11101111  指定ピンのみ変更
ryuna 0:76ba33d3b4a6 141 //right front leg down
ryuna 1:807091115672 142 _doLed[2] = 0;
ryuna 0:76ba33d3b4a6 143
ryuna 0:76ba33d3b4a6 144 }
ryuna 0:76ba33d3b4a6 145
ryuna 0:76ba33d3b4a6 146 void _atMotorStop6(){
ryuna 0:76ba33d3b4a6 147
ryuna 0:76ba33d3b4a6 148 _boMotor = _boMotor & 0xFD;
ryuna 0:76ba33d3b4a6 149 //11111101 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 150 //right back leg up
ryuna 1:807091115672 151 _doLed[3] = 0;
ryuna 1:807091115672 152
ryuna 0:76ba33d3b4a6 153 }
ryuna 0:76ba33d3b4a6 154
ryuna 0:76ba33d3b4a6 155 void _atMotorStop7(){
ryuna 0:76ba33d3b4a6 156 _toWait[3].attach(&_atWaitStop3,WAIT_TIME);
ryuna 0:76ba33d3b4a6 157 _boMotor = _boMotor & 0xFE;
ryuna 0:76ba33d3b4a6 158 //11111110 指定ピンのみ変更
ryuna 0:76ba33d3b4a6 159 //right back leg down
ryuna 1:807091115672 160 _doLed[3] = 0;
ryuna 0:76ba33d3b4a6 161
ryuna 1:807091115672 162 }
ryuna 1:807091115672 163
ryuna 1:807091115672 164 void _aiiFLsw0(){ //attach interruptIn fall Limit switch
ryuna 1:807091115672 165 /* 1個目*/
ryuna 1:807091115672 166 if(!bWait[0] && !u8Ct1[0] && !u8Ct1[1]&&((_boMotor = 0x00)||bMotor[2]||bMotor[5]||bMotor[7])){
ryuna 1:807091115672 167 u8Ct1[0] = 1;
ryuna 1:807091115672 168 //legs up
ryuna 1:807091115672 169 _toMotor[0].attach(&_atMotorStop0,MOVE_TIME);
ryuna 1:807091115672 170 _boMotor = _boMotor | 0x80;//10000000
ryuna 1:807091115672 171 _doLed[0] = 1;
ryuna 1:807091115672 172
ryuna 1:807091115672 173 }else if(u8Ct1[0]){
ryuna 1:807091115672 174 u8Ct1[0] = 2;
ryuna 1:807091115672 175
ryuna 1:807091115672 176 }else if((u8Ct1[1] == u8Ct2[0])&&((_boMotor = 0x00)||bMotor[3]||bMotor[4]||bMotor[6])){
ryuna 1:807091115672 177 u8Ct1[1]=0;
ryuna 1:807091115672 178 u8Ct2[0]=1;
ryuna 1:807091115672 179 //legs down
ryuna 1:807091115672 180 _toMotor[1].attach(&_atMotorStop1,MOVE_TIME);
ryuna 1:807091115672 181 _boMotor = _boMotor | 0x40;//0x40 = 01000000
ryuna 1:807091115672 182 _doLed[0] = 1;
ryuna 1:807091115672 183 bWait[0] = 1;
ryuna 1:807091115672 184
ryuna 1:807091115672 185 }else{
ryuna 1:807091115672 186 u8Ct2[0] = 2;
ryuna 0:76ba33d3b4a6 187
ryuna 1:807091115672 188 }
ryuna 1:807091115672 189 }
ryuna 1:807091115672 190
ryuna 1:807091115672 191 void _aiiFLsw1(){ //attach interruptIn fall Limit switch
ryuna 1:807091115672 192 /* 2個目*/
ryuna 1:807091115672 193 if(!bWait[0] && !u8Ct1[1] && !u8Ct1[0]&&((_boMotor = 0x00)||bMotor[2]||bMotor[5]||bMotor[7])){
ryuna 1:807091115672 194 u8Ct1[1] = 1;
ryuna 1:807091115672 195 //legs up
ryuna 1:807091115672 196 _toMotor[0].attach(&_atMotorStop0,MOVE_TIME);
ryuna 1:807091115672 197 _boMotor = _boMotor | 0x80;// 10000000
ryuna 1:807091115672 198 _doLed[0] = 1;
ryuna 1:807091115672 199
ryuna 1:807091115672 200 }else if(u8Ct1[1]){
ryuna 1:807091115672 201 u8Ct1[1] = 2;
ryuna 1:807091115672 202
ryuna 1:807091115672 203 }else if((u8Ct1[0] == u8Ct2[1])&&((_boMotor = 0x00)||bMotor[3]||bMotor[4]||bMotor[6])){
ryuna 1:807091115672 204 u8Ct1[0]=0;
ryuna 1:807091115672 205 u8Ct2[1]=1;
ryuna 1:807091115672 206 //legs down
ryuna 1:807091115672 207 _toMotor[1].attach(&_atMotorStop1,MOVE_TIME);
ryuna 1:807091115672 208 _boMotor = _boMotor | 0x40;// 01000000
ryuna 1:807091115672 209 _doLed[0] = 1;
ryuna 1:807091115672 210 bWait[0] = 1;
ryuna 1:807091115672 211
ryuna 1:807091115672 212 }else{
ryuna 1:807091115672 213 u8Ct2[1] = 2;
ryuna 1:807091115672 214
ryuna 1:807091115672 215 }
ryuna 1:807091115672 216
ryuna 1:807091115672 217 }
ryuna 1:807091115672 218 void _aiiFLsw2(){ //attach interruptIn fall Limit switch
ryuna 1:807091115672 219 /* 3個目*/
ryuna 1:807091115672 220 if(!bWait[1] && !u8Ct1[2] && !u8Ct1[3]&&((_boMotor = 0x00)||bMotor[1]||bMotor[3]||bMotor[6])){
ryuna 1:807091115672 221 u8Ct1[2] = 1;
ryuna 1:807091115672 222 //legs up
ryuna 1:807091115672 223 _toMotor[2].attach(&_atMotorStop2,MOVE_TIME);
ryuna 1:807091115672 224 _boMotor = _boMotor | 0x08;//00001000
ryuna 1:807091115672 225 _doLed[1] = 1;
ryuna 1:807091115672 226
ryuna 1:807091115672 227 }else if(u8Ct1[2]){
ryuna 1:807091115672 228 u8Ct1[2] = 2;
ryuna 1:807091115672 229
ryuna 1:807091115672 230 }else if((u8Ct1[3] == u8Ct2[2])&&((_boMotor = 0x00)||bMotor[0]||bMotor[2]||bMotor[7])){
ryuna 1:807091115672 231 u8Ct1[3]=0;
ryuna 1:807091115672 232 u8Ct2[2]=1;
ryuna 1:807091115672 233 //legs down
ryuna 1:807091115672 234 _toMotor[3].attach(&_atMotorStop3,MOVE_TIME);
ryuna 1:807091115672 235 _boMotor = _boMotor | 0x04;//00000100
ryuna 1:807091115672 236 _doLed[1] = 1;
ryuna 1:807091115672 237 bWait[1] = 1;
ryuna 1:807091115672 238
ryuna 1:807091115672 239 }else{
ryuna 1:807091115672 240 u8Ct2[2] = 2;
ryuna 1:807091115672 241 }
ryuna 1:807091115672 242
ryuna 1:807091115672 243 }
ryuna 1:807091115672 244 void _aiiFLsw3(){ //attach interruptIn fall Limit switch
ryuna 1:807091115672 245 /* 4個目*/
ryuna 1:807091115672 246 if(!bWait[1] && !u8Ct1[3] && !u8Ct1[2]&&((_boMotor = 0x00)||bMotor[1]||bMotor[3]||bMotor[6])){
ryuna 1:807091115672 247 u8Ct1[3] = 1;
ryuna 1:807091115672 248 //leg up
ryuna 1:807091115672 249 _toMotor[2].attach(&_atMotorStop2,MOVE_TIME);
ryuna 1:807091115672 250 _boMotor = _boMotor | 0x08;// 00001000
ryuna 1:807091115672 251 _doLed[1] = 1;
ryuna 1:807091115672 252
ryuna 1:807091115672 253 }else if(u8Ct1[3]){
ryuna 1:807091115672 254 u8Ct1[3] = 2;
ryuna 1:807091115672 255
ryuna 1:807091115672 256 }else if((u8Ct1[2] == u8Ct2[3])&&((_boMotor = 0x00)||bMotor[0]||bMotor[2]||bMotor[7])){
ryuna 1:807091115672 257 u8Ct1[2]=0;
ryuna 1:807091115672 258 u8Ct2[3]=1;
ryuna 1:807091115672 259 //leg down
ryuna 1:807091115672 260 _toMotor[3].attach(&_atMotorStop3,MOVE_TIME);
ryuna 1:807091115672 261 _boMotor = _boMotor | 0x04;//00000100
ryuna 1:807091115672 262 _doLed[1] = 1;
ryuna 1:807091115672 263 bWait[1] = 1;
ryuna 1:807091115672 264
ryuna 1:807091115672 265 }else{
ryuna 1:807091115672 266 u8Ct2[3] = 2;
ryuna 1:807091115672 267 }
ryuna 1:807091115672 268 }
ryuna 1:807091115672 269 void _aiiFLsw4(){ //attach interruptIn fall Limit switch
ryuna 1:807091115672 270 /* 5個目*/
ryuna 1:807091115672 271 if(!bWait[2] && !u8Ct1[4] && !u8Ct1[5]&&((_boMotor = 0x00)||bMotor[0]||bMotor[5]||bMotor[7])){
ryuna 1:807091115672 272 u8Ct1[4] = 1;
ryuna 1:807091115672 273 //leg up
ryuna 1:807091115672 274 _toMotor[4].attach(&_atMotorStop4,MOVE_TIME);
ryuna 1:807091115672 275 _boMotor = _boMotor | 0x20;//00100000
ryuna 1:807091115672 276 _doLed[2] = 0;
ryuna 1:807091115672 277
ryuna 1:807091115672 278 }else if(u8Ct1[4]){
ryuna 1:807091115672 279 u8Ct1[4] = 2;
ryuna 1:807091115672 280
ryuna 1:807091115672 281 }else if((u8Ct1[5] == u8Ct2[4])&&((_boMotor = 0x00)||bMotor[1]||bMotor[4]||bMotor[6])){
ryuna 1:807091115672 282 u8Ct1[5]=0;
ryuna 1:807091115672 283 u8Ct2[4]=1;
ryuna 1:807091115672 284 //leg down
ryuna 1:807091115672 285 _toMotor[5].attach(&_atMotorStop5,MOVE_TIME);
ryuna 1:807091115672 286 _boMotor = _boMotor | 0x10;//0x10 = 00010000
ryuna 1:807091115672 287 _doLed[2] = 0;
ryuna 1:807091115672 288 bWait[2] = 1;
ryuna 1:807091115672 289
ryuna 1:807091115672 290 }else{
ryuna 1:807091115672 291 u8Ct2[4] = 2;
ryuna 1:807091115672 292 }
ryuna 1:807091115672 293 }
ryuna 1:807091115672 294 void _aiiFLsw5(){ //attach interruptIn fall Limit switch
ryuna 1:807091115672 295 /* 6個目*/
ryuna 1:807091115672 296 if(!bWait[2] && !u8Ct1[5] && !u8Ct1[4]&&((_boMotor = 0x00)||bMotor[0]||bMotor[5]||bMotor[7])){
ryuna 1:807091115672 297 u8Ct1[5] = 1;
ryuna 1:807091115672 298 //leg up
ryuna 1:807091115672 299 _toMotor[4].attach(&_atMotorStop4,MOVE_TIME);
ryuna 1:807091115672 300 _boMotor = _boMotor | 0x20;// 00100000
ryuna 1:807091115672 301 _doLed[2] = 0;
ryuna 1:807091115672 302
ryuna 1:807091115672 303 }else if(u8Ct1[5]){
ryuna 1:807091115672 304 u8Ct1[5] = 2;
ryuna 1:807091115672 305
ryuna 1:807091115672 306 }else if((u8Ct1[4] == u8Ct2[5])&&((_boMotor = 0x00)||bMotor[1]||bMotor[4]||bMotor[6])){
ryuna 1:807091115672 307 u8Ct1[4]=0;
ryuna 1:807091115672 308 u8Ct2[5]=1;
ryuna 1:807091115672 309 //leg down
ryuna 1:807091115672 310 _toMotor[5].attach(&_atMotorStop5,MOVE_TIME);
ryuna 1:807091115672 311 _boMotor = _boMotor | 0x10;// 00010000
ryuna 1:807091115672 312 _doLed[2] = 0;
ryuna 1:807091115672 313 bWait[2] = 1;
ryuna 1:807091115672 314
ryuna 1:807091115672 315 }else{
ryuna 1:807091115672 316 u8Ct2[5] = 2;
ryuna 1:807091115672 317
ryuna 1:807091115672 318 }
ryuna 1:807091115672 319 }
ryuna 1:807091115672 320 void _aiiFLsw6(){ //attach interruptIn fall Limit switch
ryuna 1:807091115672 321
ryuna 1:807091115672 322 /* 7個目*/
ryuna 1:807091115672 323 if(!bWait[3] && !u8Ct1[6] && !u8Ct1[7]&&((_boMotor = 0x00)||bMotor[1]||bMotor[3]||bMotor[4])){
ryuna 1:807091115672 324 u8Ct1[6] = 1;
ryuna 1:807091115672 325 //legs up
ryuna 1:807091115672 326 _toMotor[6].attach(&_atMotorStop6,MOVE_TIME);
ryuna 1:807091115672 327 _boMotor = _boMotor | 0x02;//00000010
ryuna 1:807091115672 328 _doLed[3] = 0;
ryuna 1:807091115672 329
ryuna 1:807091115672 330 }else if(u8Ct1[6]){
ryuna 1:807091115672 331 u8Ct1[6] = 2;
ryuna 1:807091115672 332
ryuna 1:807091115672 333 }else if((u8Ct1[7] == u8Ct2[6])&&((_boMotor = 0x00)||bMotor[0]||bMotor[2]||bMotor[5])){
ryuna 1:807091115672 334 u8Ct1[7]=0;
ryuna 1:807091115672 335 u8Ct2[6]=1;
ryuna 1:807091115672 336 //leg down
ryuna 1:807091115672 337 _toMotor[7].attach(&_atMotorStop7,MOVE_TIME);
ryuna 1:807091115672 338 _boMotor = _boMotor | 0x01;//00000001
ryuna 1:807091115672 339 bWait[3] = 1;
ryuna 1:807091115672 340 _doLed[3] = 0;
ryuna 1:807091115672 341
ryuna 1:807091115672 342 }else{
ryuna 1:807091115672 343 u8Ct2[6] = 2;
ryuna 1:807091115672 344 }
ryuna 1:807091115672 345 }
ryuna 1:807091115672 346 void _aiiFLsw7(){ //attach interruptIn fall Limit switch
ryuna 1:807091115672 347 /* 8個目*/
ryuna 1:807091115672 348 if(!bWait[3] && !u8Ct1[7] && !u8Ct1[6]&&((_boMotor = 0x00)||bMotor[1]||bMotor[3]||bMotor[4])){
ryuna 1:807091115672 349 u8Ct1[7] = 1;
ryuna 1:807091115672 350 //leg up
ryuna 1:807091115672 351 _toMotor[6].attach(&_atMotorStop6,MOVE_TIME);
ryuna 1:807091115672 352 _boMotor = _boMotor | 0x02;// 00000010
ryuna 1:807091115672 353 //_doLed[6] = 1;
ryuna 1:807091115672 354 _doLed[3] = 0;
ryuna 1:807091115672 355
ryuna 1:807091115672 356 }else if(u8Ct1[7]){
ryuna 1:807091115672 357 u8Ct1[7] = 2;
ryuna 1:807091115672 358
ryuna 1:807091115672 359 }else if((u8Ct1[6] == u8Ct2[7])&&((_boMotor = 0x00)||bMotor[0]||bMotor[2]||bMotor[5])){
ryuna 1:807091115672 360 u8Ct1[6]=0;
ryuna 1:807091115672 361 u8Ct2[7]=1;
ryuna 1:807091115672 362 //leg down
ryuna 1:807091115672 363 _toMotor[7].attach(&_atMotorStop7,MOVE_TIME);
ryuna 1:807091115672 364 _boMotor = _boMotor | 0x01;//00000001
ryuna 1:807091115672 365 bWait[3] = 1;
ryuna 1:807091115672 366 _doLed[3] = 0;
ryuna 1:807091115672 367
ryuna 1:807091115672 368 }else{
ryuna 1:807091115672 369 u8Ct2[7] = 2;
ryuna 1:807091115672 370 }
ryuna 0:76ba33d3b4a6 371 }
ryuna 0:76ba33d3b4a6 372
ryuna 0:76ba33d3b4a6 373
ryuna 0:76ba33d3b4a6 374
ryuna 1:807091115672 375
ryuna 0:76ba33d3b4a6 376 int main() {
ryuna 1:807091115672 377
ryuna 1:807091115672 378
ryuna 0:76ba33d3b4a6 379 static bool bClim[8] = {1,1,1,1,1,1,1,1};//bool Check limit[]
ryuna 1:807091115672 380 /*static uint8_t u8Ct1[8] = {0},u8Ct2[8] = {1,1,1,1,1,1,1,1};//uint8_t Count{1,2}[]
ryuna 1:807091115672 381 */
ryuna 1:807091115672 382 /*
ryuna 0:76ba33d3b4a6 383 limit[0].mode(PullUp);
ryuna 0:76ba33d3b4a6 384 limit[1].mode(PullUp);
ryuna 0:76ba33d3b4a6 385 limit[2].mode(PullUp);
ryuna 0:76ba33d3b4a6 386 limit[3].mode(PullUp);
ryuna 0:76ba33d3b4a6 387 limit[4].mode(PullUp);
ryuna 0:76ba33d3b4a6 388 limit[5].mode(PullUp);
ryuna 0:76ba33d3b4a6 389 limit[6].mode(PullUp);
ryuna 0:76ba33d3b4a6 390 limit[7].mode(PullUp);
ryuna 1:807091115672 391 */
ryuna 1:807091115672 392
ryuna 1:807091115672 393 //Limit switch mode pullup
ryuna 1:807091115672 394 _iiLsw[0].mode(PullUp);
ryuna 1:807091115672 395 _iiLsw[1].mode(PullUp);
ryuna 1:807091115672 396 _iiLsw[2].mode(PullUp);
ryuna 1:807091115672 397 _iiLsw[3].mode(PullUp);
ryuna 1:807091115672 398 _iiLsw[4].mode(PullUp);
ryuna 1:807091115672 399 _iiLsw[5].mode(PullUp);
ryuna 1:807091115672 400 _iiLsw[6].mode(PullUp);
ryuna 1:807091115672 401 _iiLsw[7].mode(PullUp);
ryuna 0:76ba33d3b4a6 402
ryuna 1:807091115672 403
ryuna 1:807091115672 404 //interrupt attach fall set use
ryuna 1:807091115672 405 _iiLsw[0].fall(_aiiFLsw0);
ryuna 1:807091115672 406 _iiLsw[1].fall(_aiiFLsw1);
ryuna 1:807091115672 407 _iiLsw[2].fall(_aiiFLsw2);
ryuna 1:807091115672 408 _iiLsw[3].fall(_aiiFLsw3);
ryuna 1:807091115672 409 _iiLsw[4].fall(_aiiFLsw4);
ryuna 1:807091115672 410 _iiLsw[5].fall(_aiiFLsw5);
ryuna 1:807091115672 411 _iiLsw[6].fall(_aiiFLsw6);
ryuna 1:807091115672 412 _iiLsw[7].fall(_aiiFLsw7);
ryuna 1:807091115672 413
ryuna 0:76ba33d3b4a6 414
ryuna 0:76ba33d3b4a6 415
ryuna 0:76ba33d3b4a6 416 /* pwm level setting */
ryuna 0:76ba33d3b4a6 417 _poPwm[0] = PWM_LEVEL ;
ryuna 0:76ba33d3b4a6 418 _poPwm[1] = PWM_LEVEL ;
ryuna 0:76ba33d3b4a6 419 _poPwm[2] = PWM_LEVEL ;
ryuna 0:76ba33d3b4a6 420 _poPwm[3] = PWM_LEVEL ;
ryuna 0:76ba33d3b4a6 421 /* */
ryuna 0:76ba33d3b4a6 422
ryuna 1:807091115672 423
ryuna 1:807091115672 424 wait(0.5);
ryuna 1:807091115672 425 Motor_state();
ryuna 0:76ba33d3b4a6 426
ryuna 0:76ba33d3b4a6 427 while(1){
ryuna 1:807091115672 428 Motor_state();
ryuna 1:807091115672 429 wait(0.15);
ryuna 1:807091115672 430 _doLed[0] = !_doLed[0];
ryuna 1:807091115672 431
ryuna 1:807091115672 432
ryuna 1:807091115672 433
ryuna 1:807091115672 434 }
ryuna 1:807091115672 435 while(1){
ryuna 0:76ba33d3b4a6 436 /*左の方-リミットスイッチ0~3*/
ryuna 0:76ba33d3b4a6 437 if(!limit[0] && !bClim[0]){
ryuna 0:76ba33d3b4a6 438
ryuna 0:76ba33d3b4a6 439 /* 1個目*/
ryuna 0:76ba33d3b4a6 440 if(!bWait[0] && !u8Ct1[0] && !u8Ct1[1]){
ryuna 0:76ba33d3b4a6 441 u8Ct1[0] = 1;
ryuna 0:76ba33d3b4a6 442 //legs up
ryuna 0:76ba33d3b4a6 443 _toMotor[0].attach(&_atMotorStop0,MOVE_TIME);
ryuna 0:76ba33d3b4a6 444 _boMotor = _boMotor | 0x80;//10000000
ryuna 0:76ba33d3b4a6 445 _doLed[0] = 1;
ryuna 0:76ba33d3b4a6 446
ryuna 0:76ba33d3b4a6 447 }else if(u8Ct1[0]){
ryuna 0:76ba33d3b4a6 448 u8Ct1[0] = 2;
ryuna 0:76ba33d3b4a6 449
ryuna 0:76ba33d3b4a6 450 }else if((u8Ct1[1] == u8Ct2[0])){
ryuna 0:76ba33d3b4a6 451 u8Ct1[1]=0;
ryuna 0:76ba33d3b4a6 452 u8Ct2[0]=1;
ryuna 0:76ba33d3b4a6 453 //legs down
ryuna 0:76ba33d3b4a6 454 _toMotor[1].attach(&_atMotorStop1,MOVE_TIME);
ryuna 0:76ba33d3b4a6 455 _boMotor = _boMotor | 0x40;//0x40 = 01000000
ryuna 1:807091115672 456 _doLed[0] = 1;
ryuna 0:76ba33d3b4a6 457 bWait[0] = 1;
ryuna 0:76ba33d3b4a6 458
ryuna 0:76ba33d3b4a6 459 }else{
ryuna 0:76ba33d3b4a6 460 u8Ct2[0] = 2;
ryuna 0:76ba33d3b4a6 461 }
ryuna 0:76ba33d3b4a6 462 bClim[0] = 1;
ryuna 0:76ba33d3b4a6 463
ryuna 0:76ba33d3b4a6 464 }else if(limit[0]){
ryuna 0:76ba33d3b4a6 465 bClim[0] = 0;
ryuna 0:76ba33d3b4a6 466 }
ryuna 0:76ba33d3b4a6 467
ryuna 0:76ba33d3b4a6 468
ryuna 0:76ba33d3b4a6 469 if(!limit[1] && !bClim[1]){
ryuna 0:76ba33d3b4a6 470
ryuna 0:76ba33d3b4a6 471 /* 2個目*/
ryuna 0:76ba33d3b4a6 472 if(!bWait[0] && !u8Ct1[1] && !u8Ct1[0]){
ryuna 0:76ba33d3b4a6 473 u8Ct1[1] = 1;
ryuna 0:76ba33d3b4a6 474 //legs up
ryuna 0:76ba33d3b4a6 475 _toMotor[0].attach(&_atMotorStop0,MOVE_TIME);
ryuna 0:76ba33d3b4a6 476 _boMotor = _boMotor | 0x80;// 10000000
ryuna 0:76ba33d3b4a6 477 _doLed[0] = 1;
ryuna 0:76ba33d3b4a6 478
ryuna 0:76ba33d3b4a6 479 }else if(u8Ct1[1]){
ryuna 0:76ba33d3b4a6 480 u8Ct1[1] = 2;
ryuna 0:76ba33d3b4a6 481
ryuna 0:76ba33d3b4a6 482 }else if((u8Ct1[0] == u8Ct2[1])){
ryuna 0:76ba33d3b4a6 483 u8Ct1[0]=0;
ryuna 0:76ba33d3b4a6 484 u8Ct2[1]=1;
ryuna 0:76ba33d3b4a6 485 //legs down
ryuna 0:76ba33d3b4a6 486 _toMotor[1].attach(&_atMotorStop1,MOVE_TIME);
ryuna 0:76ba33d3b4a6 487 _boMotor = _boMotor | 0x40;// 01000000
ryuna 1:807091115672 488 _doLed[0] = 1;
ryuna 0:76ba33d3b4a6 489 bWait[0] = 1;
ryuna 0:76ba33d3b4a6 490
ryuna 0:76ba33d3b4a6 491 }else{
ryuna 0:76ba33d3b4a6 492 u8Ct2[1] = 2;
ryuna 0:76ba33d3b4a6 493
ryuna 0:76ba33d3b4a6 494 }
ryuna 0:76ba33d3b4a6 495 bClim[1] = 1;
ryuna 0:76ba33d3b4a6 496
ryuna 0:76ba33d3b4a6 497 }else if(limit[1]){
ryuna 0:76ba33d3b4a6 498 bClim[1] = 0;
ryuna 0:76ba33d3b4a6 499 }
ryuna 0:76ba33d3b4a6 500
ryuna 0:76ba33d3b4a6 501
ryuna 0:76ba33d3b4a6 502 if(!limit[2] && !bClim[2]){
ryuna 0:76ba33d3b4a6 503
ryuna 0:76ba33d3b4a6 504 /* 3個目*/
ryuna 0:76ba33d3b4a6 505 if(!bWait[1] && !u8Ct1[2] && !u8Ct1[3]){
ryuna 0:76ba33d3b4a6 506 u8Ct1[2] = 1;
ryuna 0:76ba33d3b4a6 507 //legs up
ryuna 0:76ba33d3b4a6 508 _toMotor[2].attach(&_atMotorStop2,MOVE_TIME);
ryuna 0:76ba33d3b4a6 509 _boMotor = _boMotor | 0x08;//00001000
ryuna 1:807091115672 510 _doLed[1] = 1;
ryuna 0:76ba33d3b4a6 511 }else if(u8Ct1[2]){
ryuna 0:76ba33d3b4a6 512 u8Ct1[2] = 2;
ryuna 0:76ba33d3b4a6 513
ryuna 0:76ba33d3b4a6 514 }else if((u8Ct1[3] == u8Ct2[2])){
ryuna 0:76ba33d3b4a6 515 u8Ct1[3]=0;
ryuna 0:76ba33d3b4a6 516 u8Ct2[2]=1;
ryuna 0:76ba33d3b4a6 517 //legs down
ryuna 0:76ba33d3b4a6 518 _toMotor[3].attach(&_atMotorStop3,MOVE_TIME);
ryuna 0:76ba33d3b4a6 519 _boMotor = _boMotor | 0x04;//00000100
ryuna 1:807091115672 520 _doLed[1] = 1;
ryuna 0:76ba33d3b4a6 521 bWait[1] = 1;
ryuna 0:76ba33d3b4a6 522 }else{
ryuna 0:76ba33d3b4a6 523 u8Ct2[2] = 2;
ryuna 0:76ba33d3b4a6 524 }
ryuna 0:76ba33d3b4a6 525
ryuna 0:76ba33d3b4a6 526 bClim[2] = 1;
ryuna 0:76ba33d3b4a6 527 }else if(limit[2]){
ryuna 0:76ba33d3b4a6 528 bClim[2] = 0;
ryuna 0:76ba33d3b4a6 529 }
ryuna 0:76ba33d3b4a6 530
ryuna 0:76ba33d3b4a6 531
ryuna 0:76ba33d3b4a6 532
ryuna 0:76ba33d3b4a6 533 if(!limit[3] && !bClim[3]){
ryuna 0:76ba33d3b4a6 534 /* 4個目*/
ryuna 0:76ba33d3b4a6 535 if(!bWait[1] && !u8Ct1[3] && !u8Ct1[2]){
ryuna 0:76ba33d3b4a6 536 u8Ct1[3] = 1;
ryuna 0:76ba33d3b4a6 537 //leg up
ryuna 0:76ba33d3b4a6 538 _toMotor[2].attach(&_atMotorStop2,MOVE_TIME);
ryuna 0:76ba33d3b4a6 539 _boMotor = _boMotor | 0x08;// 00001000
ryuna 1:807091115672 540 _doLed[1] = 1;
ryuna 0:76ba33d3b4a6 541
ryuna 0:76ba33d3b4a6 542 }else if(u8Ct1[3]){
ryuna 0:76ba33d3b4a6 543 u8Ct1[3] = 2;
ryuna 0:76ba33d3b4a6 544
ryuna 0:76ba33d3b4a6 545 }else if((u8Ct1[2] == u8Ct2[3])){
ryuna 0:76ba33d3b4a6 546 u8Ct1[2]=0;
ryuna 0:76ba33d3b4a6 547 u8Ct2[3]=1;
ryuna 0:76ba33d3b4a6 548 //leg down
ryuna 0:76ba33d3b4a6 549 _toMotor[3].attach(&_atMotorStop3,MOVE_TIME);
ryuna 0:76ba33d3b4a6 550 _boMotor = _boMotor | 0x04;//00000100
ryuna 1:807091115672 551 _doLed[1] = 1;
ryuna 0:76ba33d3b4a6 552 bWait[1] = 1;
ryuna 0:76ba33d3b4a6 553 }else{
ryuna 0:76ba33d3b4a6 554 u8Ct2[3] = 2;
ryuna 0:76ba33d3b4a6 555 }
ryuna 0:76ba33d3b4a6 556
ryuna 0:76ba33d3b4a6 557 bClim[3] = 1;
ryuna 0:76ba33d3b4a6 558 }else if(limit[3]){
ryuna 0:76ba33d3b4a6 559 bClim[3] = 0;
ryuna 0:76ba33d3b4a6 560 }
ryuna 0:76ba33d3b4a6 561
ryuna 0:76ba33d3b4a6 562
ryuna 0:76ba33d3b4a6 563 /*右の方 リミットスイッチ4~7 */
ryuna 0:76ba33d3b4a6 564
ryuna 0:76ba33d3b4a6 565 if(!limit[4] && !bClim[4]){
ryuna 0:76ba33d3b4a6 566
ryuna 0:76ba33d3b4a6 567 /* 5個目*/
ryuna 0:76ba33d3b4a6 568 if(!bWait[2] && !u8Ct1[4] && !u8Ct1[5]){
ryuna 0:76ba33d3b4a6 569 u8Ct1[4] = 1;
ryuna 0:76ba33d3b4a6 570 //leg up
ryuna 0:76ba33d3b4a6 571 _toMotor[4].attach(&_atMotorStop4,MOVE_TIME);
ryuna 0:76ba33d3b4a6 572 _boMotor = _boMotor | 0x20;//00100000
ryuna 1:807091115672 573 _doLed[2] = 0;
ryuna 0:76ba33d3b4a6 574
ryuna 0:76ba33d3b4a6 575 }else if(u8Ct1[4]){
ryuna 0:76ba33d3b4a6 576 u8Ct1[4] = 2;
ryuna 0:76ba33d3b4a6 577
ryuna 0:76ba33d3b4a6 578 }else if((u8Ct1[5] == u8Ct2[4])){
ryuna 0:76ba33d3b4a6 579 u8Ct1[5]=0;
ryuna 0:76ba33d3b4a6 580 u8Ct2[4]=1;
ryuna 0:76ba33d3b4a6 581 //leg down
ryuna 0:76ba33d3b4a6 582 _toMotor[5].attach(&_atMotorStop5,MOVE_TIME);
ryuna 0:76ba33d3b4a6 583 _boMotor = _boMotor | 0x10;//0x10 = 00010000
ryuna 1:807091115672 584 _doLed[2] = 0;
ryuna 0:76ba33d3b4a6 585 bWait[2] = 1;
ryuna 0:76ba33d3b4a6 586
ryuna 0:76ba33d3b4a6 587 }else{
ryuna 0:76ba33d3b4a6 588 u8Ct2[4] = 2;
ryuna 0:76ba33d3b4a6 589 }
ryuna 0:76ba33d3b4a6 590 bClim[4] = 1;
ryuna 0:76ba33d3b4a6 591
ryuna 0:76ba33d3b4a6 592 }else if(limit[4]){
ryuna 0:76ba33d3b4a6 593 bClim[4] = 0;
ryuna 0:76ba33d3b4a6 594 }
ryuna 0:76ba33d3b4a6 595
ryuna 0:76ba33d3b4a6 596
ryuna 0:76ba33d3b4a6 597 if(!limit[5] && !bClim[5]){
ryuna 0:76ba33d3b4a6 598
ryuna 0:76ba33d3b4a6 599 /* 6個目*/
ryuna 0:76ba33d3b4a6 600 if(!bWait[2] && !u8Ct1[5] && !u8Ct1[4]){
ryuna 0:76ba33d3b4a6 601 u8Ct1[5] = 1;
ryuna 0:76ba33d3b4a6 602 //leg up
ryuna 0:76ba33d3b4a6 603 _toMotor[4].attach(&_atMotorStop4,MOVE_TIME);
ryuna 0:76ba33d3b4a6 604 _boMotor = _boMotor | 0x20;// 00100000
ryuna 1:807091115672 605 _doLed[2] = 0;
ryuna 0:76ba33d3b4a6 606
ryuna 0:76ba33d3b4a6 607 }else if(u8Ct1[5]){
ryuna 0:76ba33d3b4a6 608 u8Ct1[5] = 2;
ryuna 0:76ba33d3b4a6 609
ryuna 0:76ba33d3b4a6 610 }else if((u8Ct1[4] == u8Ct2[5])){
ryuna 0:76ba33d3b4a6 611 u8Ct1[4]=0;
ryuna 0:76ba33d3b4a6 612 u8Ct2[5]=1;
ryuna 0:76ba33d3b4a6 613 //leg down
ryuna 0:76ba33d3b4a6 614 _toMotor[5].attach(&_atMotorStop5,MOVE_TIME);
ryuna 0:76ba33d3b4a6 615 _boMotor = _boMotor | 0x10;// 00010000
ryuna 1:807091115672 616 _doLed[2] = 0;
ryuna 0:76ba33d3b4a6 617 bWait[2] = 1;
ryuna 0:76ba33d3b4a6 618
ryuna 0:76ba33d3b4a6 619 }else{
ryuna 0:76ba33d3b4a6 620 u8Ct2[5] = 2;
ryuna 0:76ba33d3b4a6 621
ryuna 0:76ba33d3b4a6 622 }
ryuna 0:76ba33d3b4a6 623 bClim[5] = 1;
ryuna 0:76ba33d3b4a6 624
ryuna 0:76ba33d3b4a6 625 }else if(limit[5]){
ryuna 0:76ba33d3b4a6 626 bClim[5] = 0;
ryuna 0:76ba33d3b4a6 627 }
ryuna 0:76ba33d3b4a6 628
ryuna 0:76ba33d3b4a6 629
ryuna 0:76ba33d3b4a6 630 if(!limit[6] && !bClim[6]){
ryuna 0:76ba33d3b4a6 631
ryuna 0:76ba33d3b4a6 632 /* 7個目*/
ryuna 0:76ba33d3b4a6 633 if(!bWait[3] && !u8Ct1[6] && !u8Ct1[7]){
ryuna 0:76ba33d3b4a6 634 u8Ct1[6] = 1;
ryuna 0:76ba33d3b4a6 635 //legs up
ryuna 0:76ba33d3b4a6 636 _toMotor[6].attach(&_atMotorStop6,MOVE_TIME);
ryuna 0:76ba33d3b4a6 637 _boMotor = _boMotor | 0x02;//00000010
ryuna 1:807091115672 638 _doLed[3] = 0;
ryuna 1:807091115672 639
ryuna 0:76ba33d3b4a6 640 }else if(u8Ct1[6]){
ryuna 0:76ba33d3b4a6 641 u8Ct1[6] = 2;
ryuna 0:76ba33d3b4a6 642
ryuna 0:76ba33d3b4a6 643 }else if((u8Ct1[7] == u8Ct2[6])){
ryuna 0:76ba33d3b4a6 644 u8Ct1[7]=0;
ryuna 0:76ba33d3b4a6 645 u8Ct2[6]=1;
ryuna 0:76ba33d3b4a6 646 //leg down
ryuna 0:76ba33d3b4a6 647 _toMotor[7].attach(&_atMotorStop7,MOVE_TIME);
ryuna 0:76ba33d3b4a6 648 _boMotor = _boMotor | 0x01;//00000001
ryuna 0:76ba33d3b4a6 649 bWait[3] = 1;
ryuna 1:807091115672 650 _doLed[3] = 0;
ryuna 1:807091115672 651
ryuna 0:76ba33d3b4a6 652 }else{
ryuna 0:76ba33d3b4a6 653 u8Ct2[6] = 2;
ryuna 0:76ba33d3b4a6 654 }
ryuna 0:76ba33d3b4a6 655
ryuna 0:76ba33d3b4a6 656 bClim[6] = 1;
ryuna 0:76ba33d3b4a6 657 }else if(limit[6]){
ryuna 0:76ba33d3b4a6 658 bClim[6] = 0;
ryuna 0:76ba33d3b4a6 659 }
ryuna 0:76ba33d3b4a6 660
ryuna 0:76ba33d3b4a6 661
ryuna 0:76ba33d3b4a6 662
ryuna 0:76ba33d3b4a6 663 if(!limit[7] && !bClim[7]){
ryuna 0:76ba33d3b4a6 664 /* 8個目*/
ryuna 0:76ba33d3b4a6 665 if(!bWait[3] && !u8Ct1[7] && !u8Ct1[6]){
ryuna 0:76ba33d3b4a6 666 u8Ct1[7] = 1;
ryuna 0:76ba33d3b4a6 667 //leg up
ryuna 0:76ba33d3b4a6 668 _toMotor[6].attach(&_atMotorStop6,MOVE_TIME);
ryuna 0:76ba33d3b4a6 669 _boMotor = _boMotor | 0x02;// 00000010
ryuna 0:76ba33d3b4a6 670 //_doLed[6] = 1;
ryuna 1:807091115672 671 _doLed[3] = 0;
ryuna 0:76ba33d3b4a6 672
ryuna 0:76ba33d3b4a6 673 }else if(u8Ct1[7]){
ryuna 0:76ba33d3b4a6 674 u8Ct1[7] = 2;
ryuna 0:76ba33d3b4a6 675
ryuna 0:76ba33d3b4a6 676 }else if((u8Ct1[6] == u8Ct2[7])){
ryuna 0:76ba33d3b4a6 677 u8Ct1[6]=0;
ryuna 0:76ba33d3b4a6 678 u8Ct2[7]=1;
ryuna 0:76ba33d3b4a6 679 //leg down
ryuna 0:76ba33d3b4a6 680 _toMotor[7].attach(&_atMotorStop7,MOVE_TIME);
ryuna 0:76ba33d3b4a6 681 _boMotor = _boMotor | 0x01;//00000001
ryuna 0:76ba33d3b4a6 682 bWait[3] = 1;
ryuna 1:807091115672 683 _doLed[3] = 0;
ryuna 0:76ba33d3b4a6 684
ryuna 0:76ba33d3b4a6 685 }else{
ryuna 0:76ba33d3b4a6 686 u8Ct2[7] = 2;
ryuna 0:76ba33d3b4a6 687 }
ryuna 0:76ba33d3b4a6 688
ryuna 0:76ba33d3b4a6 689 bClim[7] = 1;
ryuna 0:76ba33d3b4a6 690 }else if(limit[7]){
ryuna 0:76ba33d3b4a6 691 bClim[7] = 0;
ryuna 0:76ba33d3b4a6 692 }
ryuna 0:76ba33d3b4a6 693
ryuna 0:76ba33d3b4a6 694 }
ryuna 0:76ba33d3b4a6 695 }