足上げセンサ八個版仮

Dependencies:   mbed

Fork of 4LegUpDown_8sense by Bチーム

Committer:
ryuna
Date:
Thu Sep 11 02:42:46 2014 +0000
Revision:
5:aba9f5e97e03
Parent:
4:04f2479b83c1
Child:
6:6664c6aa67d3
???

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryuna 0:76ba33d3b4a6 1 #include "mbed.h"
ryuna 0:76ba33d3b4a6 2
ryuna 3:cd7d3613e8e4 3 #define MOTOR_NUM 8
ryuna 3:cd7d3613e8e4 4 #define MOVE_TIME 0.060
ryuna 5:aba9f5e97e03 5 #define MOVE_DOWN_TIME 0.075
ryuna 3:cd7d3613e8e4 6 #define TEMPRA_TIME 1.0
ryuna 3:cd7d3613e8e4 7 #define PWM_LEVEL 1.0
ryuna 0:76ba33d3b4a6 8
ryuna 0:76ba33d3b4a6 9 Serial pc(USBTX,USBRX);
ryuna 0:76ba33d3b4a6 10
ryuna 3:cd7d3613e8e4 11 InterruptIn Photo[8] = {p5,p6,p7,p8,p9,p10,p11,p12};
ryuna 4:04f2479b83c1 12 InterruptIn Sw(p30);
ryuna 3:cd7d3613e8e4 13
ryuna 1:807091115672 14
ryuna 3:cd7d3613e8e4 15 DigitalOut Led[4] = {LED1, LED2, LED3, LED4 };
ryuna 3:cd7d3613e8e4 16 BusOut Motor(p13, p14, p15, p16, p17, p18, p19, p20 );//{left front, right front, left back ,right back }
ryuna 4:04f2479b83c1 17 BusOut Tempra(p25,p26,p27,p28);
ryuna 4:04f2479b83c1 18 PwmOut Pwm[4] = {p21, p22, p23, p24 };
ryuna 1:807091115672 19
ryuna 3:cd7d3613e8e4 20 Timeout StopTimer[8];
ryuna 4:04f2479b83c1 21 //Timeout StopTempra;
ryuna 0:76ba33d3b4a6 22
ryuna 3:cd7d3613e8e4 23
ryuna 3:cd7d3613e8e4 24 volatile bool MotorState[4] = {0},Flag[4] = {0},FlagAdd[4] = {0},And[4] = {0};
ryuna 3:cd7d3613e8e4 25 volatile uint8_t Way = 0,UpCt = 0;
ryuna 0:76ba33d3b4a6 26
ryuna 3:cd7d3613e8e4 27 /*motorstate 上がっているか下がっている
ryuna 5:aba9f5e97e03 28
ryuna 1:807091115672 29
ryuna 3:cd7d3613e8e4 30 */
ryuna 3:cd7d3613e8e4 31
ryuna 1:807091115672 32 /*
ryuna 1:807091115672 33 bMotor = {
ryuna 1:807091115672 34 LeftFrontUp, LeftFrontDown,
ryuna 1:807091115672 35 RightFrontUp, RightFrontDown,
ryuna 1:807091115672 36 LeftBackUp, LeftBackDown,
ryuna 1:807091115672 37 RightBackUp, RightBackDown
ryuna 1:807091115672 38 };
ryuna 1:807091115672 39 */
ryuna 1:807091115672 40
ryuna 3:cd7d3613e8e4 41
ryuna 3:cd7d3613e8e4 42
ryuna 3:cd7d3613e8e4 43 void MotorStop0(){
ryuna 3:cd7d3613e8e4 44
ryuna 3:cd7d3613e8e4 45 Motor = Motor & 0x7F;
ryuna 3:cd7d3613e8e4 46
ryuna 3:cd7d3613e8e4 47 }
ryuna 3:cd7d3613e8e4 48 void MotorStop1(){
ryuna 3:cd7d3613e8e4 49
ryuna 3:cd7d3613e8e4 50 Motor = Motor & 0xBF;
ryuna 3:cd7d3613e8e4 51
ryuna 3:cd7d3613e8e4 52 }
ryuna 3:cd7d3613e8e4 53
ryuna 3:cd7d3613e8e4 54 void MotorStop2(){
ryuna 3:cd7d3613e8e4 55
ryuna 3:cd7d3613e8e4 56 Motor = Motor & 0xF7;
ryuna 3:cd7d3613e8e4 57
ryuna 3:cd7d3613e8e4 58 }
ryuna 3:cd7d3613e8e4 59 void MotorStop3(){
ryuna 3:cd7d3613e8e4 60
ryuna 3:cd7d3613e8e4 61 Motor = Motor & 0xFB;
ryuna 3:cd7d3613e8e4 62
ryuna 3:cd7d3613e8e4 63 }
ryuna 3:cd7d3613e8e4 64 void MotorStop4(){
ryuna 3:cd7d3613e8e4 65
ryuna 3:cd7d3613e8e4 66 Motor = Motor & 0xDF;
ryuna 3:cd7d3613e8e4 67
ryuna 3:cd7d3613e8e4 68 }
ryuna 3:cd7d3613e8e4 69 void MotorStop5(){
ryuna 3:cd7d3613e8e4 70
ryuna 3:cd7d3613e8e4 71 Motor = Motor & 0xEF;
ryuna 3:cd7d3613e8e4 72
ryuna 3:cd7d3613e8e4 73 }
ryuna 3:cd7d3613e8e4 74 void MotorStop6(){
ryuna 3:cd7d3613e8e4 75
ryuna 3:cd7d3613e8e4 76 Motor = Motor & 0xFD;
ryuna 3:cd7d3613e8e4 77
ryuna 3:cd7d3613e8e4 78 }
ryuna 3:cd7d3613e8e4 79
ryuna 3:cd7d3613e8e4 80 void MotorStop7(){
ryuna 3:cd7d3613e8e4 81
ryuna 3:cd7d3613e8e4 82 Motor = Motor & 0xFE;
ryuna 3:cd7d3613e8e4 83
ryuna 3:cd7d3613e8e4 84 }
ryuna 3:cd7d3613e8e4 85 void TempraStop(){
ryuna 3:cd7d3613e8e4 86 Motor = Tempra & 0x02;
ryuna 3:cd7d3613e8e4 87
ryuna 3:cd7d3613e8e4 88 }
ryuna 3:cd7d3613e8e4 89 void FallPhoto0(){//zero
ryuna 3:cd7d3613e8e4 90 //Wayの決定
ryuna 3:cd7d3613e8e4 91 if(Way == 0){
ryuna 3:cd7d3613e8e4 92 Way = 1;
ryuna 3:cd7d3613e8e4 93 }
ryuna 3:cd7d3613e8e4 94
ryuna 3:cd7d3613e8e4 95 if(Way == 1){
ryuna 3:cd7d3613e8e4 96 if(!MotorState[0]){
ryuna 3:cd7d3613e8e4 97
ryuna 3:cd7d3613e8e4 98 StopTimer[0].attach(&MotorStop0,MOVE_TIME);
ryuna 3:cd7d3613e8e4 99 Motor = Motor | 0x80;//10000000
ryuna 3:cd7d3613e8e4 100 MotorState[0] = 1;
ryuna 3:cd7d3613e8e4 101 Led[0]= 1;
ryuna 3:cd7d3613e8e4 102 }else{
ryuna 3:cd7d3613e8e4 103 Flag[0] = 1;
ryuna 3:cd7d3613e8e4 104 }
ryuna 3:cd7d3613e8e4 105 }else if(Way == 2){
ryuna 3:cd7d3613e8e4 106
ryuna 3:cd7d3613e8e4 107 if(Flag[0]&&!FlagAdd[0]){
ryuna 3:cd7d3613e8e4 108 FlagAdd[0] = 1;
ryuna 5:aba9f5e97e03 109 }else if(MotorState[0]){
ryuna 3:cd7d3613e8e4 110 StopTimer[1].attach(&MotorStop1,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 111 Motor = Motor | 0x40;//0x40 = 01000000
ryuna 3:cd7d3613e8e4 112 MotorState[0] = 0;
ryuna 3:cd7d3613e8e4 113 Flag[0] = 0;
ryuna 3:cd7d3613e8e4 114 Led[0] = 0;
ryuna 3:cd7d3613e8e4 115 And[0] = 1;
ryuna 3:cd7d3613e8e4 116
ryuna 3:cd7d3613e8e4 117 }
ryuna 3:cd7d3613e8e4 118 }
ryuna 3:cd7d3613e8e4 119 }
ryuna 3:cd7d3613e8e4 120
ryuna 3:cd7d3613e8e4 121 void FallPhoto1(){//one
ryuna 3:cd7d3613e8e4 122 //Wayの決定
ryuna 3:cd7d3613e8e4 123 if(Way ==0){
ryuna 3:cd7d3613e8e4 124 Way = 2;
ryuna 3:cd7d3613e8e4 125 }
ryuna 3:cd7d3613e8e4 126
ryuna 3:cd7d3613e8e4 127 if(Way == 2){
ryuna 3:cd7d3613e8e4 128 if(!MotorState[0]){
ryuna 3:cd7d3613e8e4 129
ryuna 3:cd7d3613e8e4 130 StopTimer[0].attach(&MotorStop0,MOVE_TIME);
ryuna 3:cd7d3613e8e4 131 Motor = Motor | 0x80;//10000000
ryuna 3:cd7d3613e8e4 132 MotorState[0] = 1;
ryuna 3:cd7d3613e8e4 133 Led[0] = 1;
ryuna 3:cd7d3613e8e4 134 }else{
ryuna 3:cd7d3613e8e4 135 Flag[0] = 1;
ryuna 3:cd7d3613e8e4 136 }
ryuna 3:cd7d3613e8e4 137 }else if(Way == 1){
ryuna 3:cd7d3613e8e4 138
ryuna 3:cd7d3613e8e4 139 if(Flag[0]&&!FlagAdd[0]){
ryuna 3:cd7d3613e8e4 140 FlagAdd[0] = 1;
ryuna 5:aba9f5e97e03 141 }else if(MotorState[0]) {
ryuna 3:cd7d3613e8e4 142 StopTimer[1].attach(&MotorStop1,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 143 Motor = Motor | 0x40;//0x40 = 01000000
ryuna 3:cd7d3613e8e4 144 MotorState[0] = 0;
ryuna 3:cd7d3613e8e4 145 Flag[0] = 0;
ryuna 3:cd7d3613e8e4 146 Led[0] = 0;
ryuna 3:cd7d3613e8e4 147 And[0] = 1;
ryuna 3:cd7d3613e8e4 148
ryuna 3:cd7d3613e8e4 149 }
ryuna 3:cd7d3613e8e4 150 }
ryuna 3:cd7d3613e8e4 151
ryuna 3:cd7d3613e8e4 152 }
ryuna 3:cd7d3613e8e4 153 void FallPhoto2(){//two
ryuna 3:cd7d3613e8e4 154 //Wayの決定
ryuna 3:cd7d3613e8e4 155
ryuna 3:cd7d3613e8e4 156 if(Way == 1){
ryuna 3:cd7d3613e8e4 157 if(!MotorState[1]){
ryuna 3:cd7d3613e8e4 158
ryuna 3:cd7d3613e8e4 159 StopTimer[2].attach(&MotorStop2,MOVE_TIME);
ryuna 3:cd7d3613e8e4 160 Motor = Motor | 0x08;
ryuna 3:cd7d3613e8e4 161 MotorState[1] = 1;
ryuna 3:cd7d3613e8e4 162 Led[1] = 1;
ryuna 3:cd7d3613e8e4 163 }else{
ryuna 3:cd7d3613e8e4 164 Flag[1] = 1;
ryuna 3:cd7d3613e8e4 165 }
ryuna 3:cd7d3613e8e4 166 }else if(Way == 2){
ryuna 3:cd7d3613e8e4 167
ryuna 3:cd7d3613e8e4 168 if(Flag[1]&&!FlagAdd[1]){
ryuna 3:cd7d3613e8e4 169 FlagAdd[1] = 1;
ryuna 5:aba9f5e97e03 170 }else if(MotorState[1]){
ryuna 3:cd7d3613e8e4 171 StopTimer[3].attach(&MotorStop3,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 172 Motor = Motor | 0x04;
ryuna 3:cd7d3613e8e4 173 MotorState[1] = 0;
ryuna 3:cd7d3613e8e4 174 Flag[1] = 0;
ryuna 3:cd7d3613e8e4 175 Led[1] = 0;
ryuna 3:cd7d3613e8e4 176 And[1] = 1;
ryuna 3:cd7d3613e8e4 177 }
ryuna 3:cd7d3613e8e4 178 }
ryuna 3:cd7d3613e8e4 179
ryuna 3:cd7d3613e8e4 180 }
ryuna 3:cd7d3613e8e4 181 void FallPhoto3(){ //three
ryuna 3:cd7d3613e8e4 182 //Way
ryuna 1:807091115672 183
ryuna 3:cd7d3613e8e4 184 if(Way == 2){
ryuna 3:cd7d3613e8e4 185 if(!MotorState[1]){
ryuna 3:cd7d3613e8e4 186
ryuna 3:cd7d3613e8e4 187 StopTimer[2].attach(&MotorStop2,MOVE_TIME);
ryuna 3:cd7d3613e8e4 188 Motor = Motor | 0x08;
ryuna 3:cd7d3613e8e4 189 MotorState[1] = 1;
ryuna 3:cd7d3613e8e4 190 Led[1] = 1;
ryuna 3:cd7d3613e8e4 191 }else{
ryuna 3:cd7d3613e8e4 192 Flag[1] = 1;
ryuna 3:cd7d3613e8e4 193 }
ryuna 3:cd7d3613e8e4 194 }else if(Way == 1){
ryuna 3:cd7d3613e8e4 195
ryuna 3:cd7d3613e8e4 196 if(Flag[1]&&!FlagAdd[1]){
ryuna 3:cd7d3613e8e4 197 FlagAdd[1] = 1;
ryuna 5:aba9f5e97e03 198 }else if(MotorState[1]){
ryuna 3:cd7d3613e8e4 199 StopTimer[3].attach(&MotorStop3,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 200 Motor = Motor | 0x04;
ryuna 3:cd7d3613e8e4 201 MotorState[1] = 0;
ryuna 3:cd7d3613e8e4 202 Flag[1] = 0;
ryuna 3:cd7d3613e8e4 203 Led[1] = 0;
ryuna 3:cd7d3613e8e4 204 And[1] = 1;
ryuna 3:cd7d3613e8e4 205
ryuna 3:cd7d3613e8e4 206 }
ryuna 3:cd7d3613e8e4 207 }
ryuna 3:cd7d3613e8e4 208 }
ryuna 3:cd7d3613e8e4 209 void FallPhoto4(){//four
ryuna 3:cd7d3613e8e4 210
ryuna 3:cd7d3613e8e4 211 if(Way ==0){
ryuna 3:cd7d3613e8e4 212 Way = 1;
ryuna 3:cd7d3613e8e4 213 }
ryuna 3:cd7d3613e8e4 214 if(Way == 1){
ryuna 3:cd7d3613e8e4 215 if(!MotorState[2]){
ryuna 3:cd7d3613e8e4 216 StopTimer[4].attach(&MotorStop4,MOVE_TIME);
ryuna 3:cd7d3613e8e4 217 Motor = Motor | 0x20;//00100000
ryuna 3:cd7d3613e8e4 218 MotorState[2] = 1;
ryuna 3:cd7d3613e8e4 219 Led[2] = 1;
ryuna 3:cd7d3613e8e4 220 }else{
ryuna 3:cd7d3613e8e4 221 Flag[2] = 1;
ryuna 3:cd7d3613e8e4 222 }
ryuna 3:cd7d3613e8e4 223 }else if(Way == 2){
ryuna 3:cd7d3613e8e4 224
ryuna 3:cd7d3613e8e4 225 if(Flag[2]&&!FlagAdd[2]){
ryuna 3:cd7d3613e8e4 226 FlagAdd[2] = 1;
ryuna 5:aba9f5e97e03 227 }else if(MotorState[2]){
ryuna 3:cd7d3613e8e4 228 StopTimer[5].attach(&MotorStop5,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 229 Motor = Motor | 0x10;
ryuna 3:cd7d3613e8e4 230 MotorState[2] = 0;
ryuna 3:cd7d3613e8e4 231 Flag[2] = 0;
ryuna 3:cd7d3613e8e4 232 Led[2] = 0;
ryuna 3:cd7d3613e8e4 233 And[2] = 1;
ryuna 3:cd7d3613e8e4 234
ryuna 3:cd7d3613e8e4 235 }
ryuna 3:cd7d3613e8e4 236 }
ryuna 3:cd7d3613e8e4 237
ryuna 3:cd7d3613e8e4 238 }
ryuna 3:cd7d3613e8e4 239 void FallPhoto5(){//five
ryuna 3:cd7d3613e8e4 240 if(Way ==0){
ryuna 3:cd7d3613e8e4 241 Way = 2;
ryuna 3:cd7d3613e8e4 242 }
ryuna 3:cd7d3613e8e4 243
ryuna 3:cd7d3613e8e4 244 if(Way == 2){
ryuna 3:cd7d3613e8e4 245 if(!MotorState[2]){
ryuna 3:cd7d3613e8e4 246 StopTimer[4].attach(&MotorStop4,MOVE_TIME);
ryuna 3:cd7d3613e8e4 247 Motor = Motor | 0x20;//00100000
ryuna 3:cd7d3613e8e4 248 MotorState[2] = 1;
ryuna 3:cd7d3613e8e4 249 Led[2] = 1;
ryuna 3:cd7d3613e8e4 250 }else{
ryuna 3:cd7d3613e8e4 251 Flag[2] = 1;
ryuna 3:cd7d3613e8e4 252 }
ryuna 3:cd7d3613e8e4 253 }else if(Way == 1){
ryuna 3:cd7d3613e8e4 254
ryuna 3:cd7d3613e8e4 255 if(Flag[2]&&!FlagAdd[2]){
ryuna 3:cd7d3613e8e4 256 FlagAdd[2] = 1;
ryuna 5:aba9f5e97e03 257 }else if(MotorState[2]){
ryuna 3:cd7d3613e8e4 258 StopTimer[5].attach(&MotorStop5,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 259 Motor = Motor | 0x10;
ryuna 3:cd7d3613e8e4 260 MotorState[2] = 0;
ryuna 3:cd7d3613e8e4 261 Flag[2] = 0;
ryuna 3:cd7d3613e8e4 262 Led[2] = 0;
ryuna 3:cd7d3613e8e4 263 And[2] = 1;
ryuna 3:cd7d3613e8e4 264 }
ryuna 3:cd7d3613e8e4 265 }
ryuna 3:cd7d3613e8e4 266 }
ryuna 3:cd7d3613e8e4 267 void FallPhoto6(){//six
ryuna 3:cd7d3613e8e4 268
ryuna 3:cd7d3613e8e4 269
ryuna 3:cd7d3613e8e4 270 if(Way == 1){
ryuna 3:cd7d3613e8e4 271 if(!MotorState[3]){
ryuna 3:cd7d3613e8e4 272 StopTimer[6].attach(&MotorStop6,MOVE_TIME);
ryuna 3:cd7d3613e8e4 273 Motor = Motor | 0x02;
ryuna 3:cd7d3613e8e4 274 MotorState[3] = 1;
ryuna 3:cd7d3613e8e4 275 Led[3] = 1;
ryuna 3:cd7d3613e8e4 276 }else{
ryuna 3:cd7d3613e8e4 277 Flag[3] = 1;
ryuna 3:cd7d3613e8e4 278 }
ryuna 3:cd7d3613e8e4 279 }else if(Way == 2){
ryuna 3:cd7d3613e8e4 280
ryuna 3:cd7d3613e8e4 281 if(Flag[3]&&!FlagAdd[3]){
ryuna 3:cd7d3613e8e4 282 FlagAdd[3] = 1;
ryuna 5:aba9f5e97e03 283 }else if(MotorState[3]){
ryuna 3:cd7d3613e8e4 284 StopTimer[7].attach(&MotorStop7,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 285 Motor = Motor | 0x01;
ryuna 3:cd7d3613e8e4 286 MotorState[3] = 0;
ryuna 3:cd7d3613e8e4 287 Flag[3] = 0;
ryuna 3:cd7d3613e8e4 288 Led[3] = 0;
ryuna 3:cd7d3613e8e4 289 And[3] = 1;
ryuna 3:cd7d3613e8e4 290 }
ryuna 3:cd7d3613e8e4 291 }
ryuna 3:cd7d3613e8e4 292 }
ryuna 3:cd7d3613e8e4 293 void FallPhoto7(){//seven
ryuna 3:cd7d3613e8e4 294
ryuna 3:cd7d3613e8e4 295
ryuna 3:cd7d3613e8e4 296
ryuna 3:cd7d3613e8e4 297 if(Way == 2){
ryuna 3:cd7d3613e8e4 298 if(!MotorState[3]){
ryuna 3:cd7d3613e8e4 299 StopTimer[6].attach(&MotorStop6,MOVE_TIME);
ryuna 3:cd7d3613e8e4 300 Motor = Motor | 0x02;
ryuna 3:cd7d3613e8e4 301 MotorState[3] = 1;
ryuna 3:cd7d3613e8e4 302 Led[3] = 1;
ryuna 3:cd7d3613e8e4 303 }else{
ryuna 3:cd7d3613e8e4 304 Flag[3] = 1;
ryuna 3:cd7d3613e8e4 305 }
ryuna 5:aba9f5e97e03 306 }else if(Way == 1){
ryuna 3:cd7d3613e8e4 307
ryuna 3:cd7d3613e8e4 308 if(Flag[3]&&!FlagAdd[3]){
ryuna 3:cd7d3613e8e4 309 FlagAdd[3] = 1;
ryuna 5:aba9f5e97e03 310 }else if(MotorState[3]){
ryuna 3:cd7d3613e8e4 311 StopTimer[7].attach(&MotorStop7,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 312 Motor = Motor | 0x01;
ryuna 3:cd7d3613e8e4 313 MotorState[3] = 0;
ryuna 3:cd7d3613e8e4 314 Flag[3] = 0;
ryuna 3:cd7d3613e8e4 315 Led[3] = 0;
ryuna 3:cd7d3613e8e4 316 And[3] = 1;
ryuna 3:cd7d3613e8e4 317 }
ryuna 3:cd7d3613e8e4 318 }
ryuna 3:cd7d3613e8e4 319 }
ryuna 3:cd7d3613e8e4 320
ryuna 3:cd7d3613e8e4 321 void Reset(){
ryuna 3:cd7d3613e8e4 322
ryuna 3:cd7d3613e8e4 323 int i;
ryuna 3:cd7d3613e8e4 324
ryuna 3:cd7d3613e8e4 325 if(MotorState[0]){
ryuna 3:cd7d3613e8e4 326 StopTimer[1].attach(&MotorStop1,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 327 Motor = Motor | 0x40;//
ryuna 3:cd7d3613e8e4 328 }
ryuna 3:cd7d3613e8e4 329 if(MotorState[1]){
ryuna 3:cd7d3613e8e4 330 StopTimer[3].attach(&MotorStop3,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 331 Motor = Motor | 0x04;//00000100
ryuna 3:cd7d3613e8e4 332 }
ryuna 3:cd7d3613e8e4 333 if(MotorState[2]){
ryuna 3:cd7d3613e8e4 334 StopTimer[5].attach(&MotorStop5,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 335 Motor = Motor | 0x10;//00010000
ryuna 3:cd7d3613e8e4 336 }
ryuna 3:cd7d3613e8e4 337 if(MotorState[3]){
ryuna 3:cd7d3613e8e4 338 StopTimer[7].attach(&MotorStop7,MOVE_DOWN_TIME);
ryuna 3:cd7d3613e8e4 339 Motor = Motor | 0x01;//00000001
ryuna 3:cd7d3613e8e4 340 }
ryuna 3:cd7d3613e8e4 341 for(i = 0; i > 4; i++){
ryuna 4:04f2479b83c1 342 Led[i] = 0;
ryuna 3:cd7d3613e8e4 343 Flag[i] = 0;
ryuna 3:cd7d3613e8e4 344 FlagAdd[i] = 0;
ryuna 3:cd7d3613e8e4 345 MotorState[i] = 0;
ryuna 4:04f2479b83c1 346 And[i] = 0;
ryuna 1:807091115672 347 }
ryuna 4:04f2479b83c1 348 Way = 0;
ryuna 4:04f2479b83c1 349 UpCt = 0;
ryuna 1:807091115672 350
ryuna 1:807091115672 351 }
ryuna 0:76ba33d3b4a6 352
ryuna 3:cd7d3613e8e4 353 void NumCount(){//足を上げた回数を記録
ryuna 0:76ba33d3b4a6 354
ryuna 3:cd7d3613e8e4 355 bool AndCk = And[0]&And[1]&And[2]&And[3];
ryuna 4:04f2479b83c1 356 if(Way == 1){
ryuna 4:04f2479b83c1 357 Tempra = 0x0A;
ryuna 4:04f2479b83c1 358 }
ryuna 3:cd7d3613e8e4 359 if(AndCk){
ryuna 3:cd7d3613e8e4 360 UpCt ++;
ryuna 3:cd7d3613e8e4 361 And[0] = And[1] = And[2] = And[3] = 0 ;
ryuna 3:cd7d3613e8e4 362 if(UpCt > 4){
ryuna 4:04f2479b83c1 363 Tempra = 0;
ryuna 3:cd7d3613e8e4 364 UpCt = 0;
ryuna 4:04f2479b83c1 365 Way = 0;
ryuna 4:04f2479b83c1 366
ryuna 3:cd7d3613e8e4 367 }
ryuna 1:807091115672 368 }
ryuna 1:807091115672 369 }
ryuna 1:807091115672 370
ryuna 3:cd7d3613e8e4 371 void SetUp(){
ryuna 5:aba9f5e97e03 372 int i;
ryuna 5:aba9f5e97e03 373
ryuna 5:aba9f5e97e03 374 Pwm[0] = PWM_LEVEL ;
ryuna 5:aba9f5e97e03 375 Pwm[1] = PWM_LEVEL ;
ryuna 5:aba9f5e97e03 376 Pwm[2] = PWM_LEVEL ;
ryuna 5:aba9f5e97e03 377 Pwm[3] = PWM_LEVEL ;
ryuna 3:cd7d3613e8e4 378 for(i = 0 ; i > MOTOR_NUM ;i++ ){
ryuna 3:cd7d3613e8e4 379 Photo[i].mode(PullUp);
ryuna 1:807091115672 380 }
ryuna 3:cd7d3613e8e4 381 Photo[0].fall(FallPhoto0);
ryuna 3:cd7d3613e8e4 382 Photo[1].fall(FallPhoto1);
ryuna 3:cd7d3613e8e4 383 Photo[2].fall(FallPhoto2);
ryuna 3:cd7d3613e8e4 384 Photo[3].fall(FallPhoto3);
ryuna 3:cd7d3613e8e4 385 Photo[4].fall(FallPhoto4);
ryuna 3:cd7d3613e8e4 386 Photo[5].fall(FallPhoto5);
ryuna 3:cd7d3613e8e4 387 Photo[6].fall(FallPhoto6);
ryuna 3:cd7d3613e8e4 388 Photo[7].fall(FallPhoto7);
ryuna 1:807091115672 389
ryuna 3:cd7d3613e8e4 390 Sw.mode(PullUp);
ryuna 5:aba9f5e97e03 391 Sw.fall(Reset);
ryuna 3:cd7d3613e8e4 392
ryuna 1:807091115672 393
ryuna 1:807091115672 394 }
ryuna 1:807091115672 395
ryuna 0:76ba33d3b4a6 396 int main() {
ryuna 2:89cf1003e119 397
ryuna 3:cd7d3613e8e4 398 SetUp();
ryuna 3:cd7d3613e8e4 399 wait(0.5);
ryuna 2:89cf1003e119 400
ryuna 1:807091115672 401 while(1){
ryuna 3:cd7d3613e8e4 402 NumCount();
ryuna 0:76ba33d3b4a6 403
ryuna 0:76ba33d3b4a6 404 }
ryuna 0:76ba33d3b4a6 405 }