Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed TrapezoidControl QEI
Diff: System/Process/Process.cpp
- Revision:
- 45:878f8f385635
- Parent:
- 44:c208a908583c
- Child:
- 46:4a8bca4cc1fd
--- a/System/Process/Process.cpp Thu Oct 03 06:22:38 2019 +0000
+++ b/System/Process/Process.cpp Thu Oct 03 11:09:31 2019 +0000
@@ -154,7 +154,7 @@
bool mtc=false;
bool mtc2 = false;
bool emcs=false;
-bool kiri=true;
+bool kiri;
bool start_flag = true;
@@ -334,7 +334,7 @@
Twsh=2;
}
- if(StertSW && start_flag) {
+ if(StertSW && start_flag == true) {
start_flag = false;
lock = false;
if(ZoneSW) {
@@ -364,7 +364,7 @@
}
if(zyouge) {
if(Twsh==1) {
- motor[MOTOR_0].pwm = 220;
+ motor[MOTOR_0].pwm = 200;
motor[MOTOR_0].dir = FOR;
if(UPLS) {
motor[MOTOR_0].pwm = 100;
@@ -373,7 +373,7 @@
}
}
if(Twsh==2) {
- motor[MOTOR_0].pwm = 230;
+ motor[MOTOR_0].pwm = 235;
motor[MOTOR_0].dir = FOR;
if(UPLS2) {
motor[MOTOR_0].pwm = 100;
@@ -645,6 +645,7 @@
normal=20;
slow=15;
}
+
switch(g[2]) {
case 98:
motor[TIRE_FR].pwm = normal;
@@ -1291,16 +1292,16 @@
LedMode(4);
count++;
if(mode==1) {//スタートゾーンから白線検知
- fast=50;
+ fast=40;
normal=30;
slow=20;
- motor[TIRE_FR].pwm = 35;
+ motor[TIRE_FR].pwm = 27;
motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = 35;
+ motor[TIRE_FL].pwm = 33;
motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = 35;
+ motor[TIRE_BR].pwm = 33;
motor[TIRE_BR].dir = FOR;
- motor[TIRE_BL].pwm = 35;
+ motor[TIRE_BL].pwm = 27;
motor[TIRE_BL].dir = BACK;
if(g[2]==0) {
count=100000;
@@ -1316,7 +1317,7 @@
motor[TIRE_BR].dir = FREE;
motor[TIRE_BL].pwm = 30;
motor[TIRE_BL].dir = BACK;
- if(g[0]==0) {
+ if(g[1]==0) {
mode=10;
count=100000;
}
@@ -1500,7 +1501,11 @@
//count=0;
//cros=0;
}//ゆっくりモードに入れなかった時の保険
-
+ if(g[1]==0) {
+ fast=35;
+ normal=20;
+ slow=15;
+ }
switch(g[2]) {
case 98:
motor[TIRE_FR].pwm = normal;
@@ -1516,15 +1521,13 @@
count=0;
}
mtc2=true;
- if(cross==1) {
- fast=30;
- normal=20;
- slow=20;
- }
if(cross==2) {
- mode=21;
+ mode=22;
cross=0;
count=0;
+ fast=40;
+ normal=30;
+ slow=20;
}
break;
case 0:
@@ -1640,20 +1643,46 @@
}
} else if(mode==21) {
- motor[TIRE_FR].pwm = 20;
+ motor[TIRE_FR].pwm = 30;
motor[TIRE_FR].dir = BRAKE;
- motor[TIRE_FL].pwm = 20;
+ motor[TIRE_FL].pwm = 30;
motor[TIRE_FL].dir = BRAKE;
- motor[TIRE_BR].pwm = 20;
+ motor[TIRE_BR].pwm = 30;
motor[TIRE_BR].dir = BRAKE;
- motor[TIRE_BL].pwm = 20;
+ motor[TIRE_BL].pwm = 30;
motor[TIRE_BL].dir = BRAKE;
if(count<=100000) {
mode=22;
}
}
- if(YELLOW) {
+ kiri=true;
+ if(kiri) {
if(mode==22) {
+ motor[TIRE_FR].pwm = 100;
+ motor[TIRE_FR].dir = BRAKE;
+ motor[TIRE_FL].pwm = 100;
+ motor[TIRE_FL].dir = BRAKE;
+ motor[TIRE_BR].pwm = 100;
+ motor[TIRE_BR].dir = BRAKE;
+ motor[TIRE_BL].pwm = 100;
+ motor[TIRE_BL].dir = BRAKE;
+ if(count>=10000) {
+ mode=23;
+ }
+ } else if(mode==23) {
+ motor[TIRE_FR].pwm = 20;
+ motor[TIRE_FR].dir = BACK;
+ motor[TIRE_FL].pwm = 20;
+ motor[TIRE_FL].dir = BACK;
+ motor[TIRE_BR].pwm = 20;
+ motor[TIRE_BR].dir = FOR;
+ motor[TIRE_BL].pwm = 20;
+ motor[TIRE_BL].dir = FOR;
+ if(g[2]==98) {
+ mode=24;
+ count=0;
+ }
+ } else if(mode==24) {
motor[TIRE_FR].pwm = 20;
motor[TIRE_FR].dir = BACK;
motor[TIRE_FL].pwm = 20;
@@ -1663,35 +1692,77 @@
motor[TIRE_BL].pwm = 20;
motor[TIRE_BL].dir = FOR;
if(g[2]!=98) {
- mode=23;
+ count=0;
+ mode=25;
+ }
+ } else if(mode==25) {
+ motor[TIRE_FR].pwm = 10;
+ motor[TIRE_FR].dir = BRAKE;
+ motor[TIRE_FL].pwm = 10;
+ motor[TIRE_FL].dir = BRAKE;
+ motor[TIRE_BR].pwm = 10;
+ motor[TIRE_BR].dir = BRAKE;
+ motor[TIRE_BL].pwm = 10;
+ motor[TIRE_BL].dir = BRAKE;
+ if(count>=10000) {
+ mode=26;
+ count=0;
}
- }
- } else if(mode==23) {
- motor[TIRE_FR].pwm = 10;
- motor[TIRE_FR].dir = BRAKE;
- motor[TIRE_FL].pwm = 10;
- motor[TIRE_FL].dir = BRAKE;
- motor[TIRE_BR].pwm = 10;
- motor[TIRE_BR].dir = BRAKE;
- motor[TIRE_BL].pwm = 10;
- motor[TIRE_BL].dir = BRAKE;
- if(count<=100000) {
- mode=30;
+ } else if(mode==26) {
+ motor[TIRE_FR].pwm = 20;
+ motor[TIRE_FR].dir = FOR;
+ motor[TIRE_FL].pwm = 20;
+ motor[TIRE_FL].dir = FOR;
+ motor[TIRE_BR].pwm = 20;
+ motor[TIRE_BR].dir = BACK;
+ motor[TIRE_BL].pwm = 20;
+ motor[TIRE_BL].dir = BACK;
+ if(count>=5000) {
+ mode=27;
+ count=0;
+ }
+ } else if(mode==27) {
+ motor[TIRE_FR].pwm = 20;
+ motor[TIRE_FR].dir = FOR;
+ motor[TIRE_FL].pwm = 20;
+ motor[TIRE_FL].dir = FOR;
+ motor[TIRE_BR].pwm = 20;
+ motor[TIRE_BR].dir = FOR;
+ motor[TIRE_BL].pwm = 20;
+ motor[TIRE_BL].dir = FOR;
+ //どれくらい回転するかって値
+ if(count>=4000) {
+ count=0;
+ mode=28;
+ }
+ } else if(mode==28) {
+ motor[TIRE_FR].pwm = 10;
+ motor[TIRE_FR].dir = BRAKE;
+ motor[TIRE_FL].pwm = 10;
+ motor[TIRE_FL].dir = BRAKE;
+ motor[TIRE_BR].pwm = 10;
+ motor[TIRE_BR].dir = BRAKE;
+ motor[TIRE_BL].pwm = 10;
+ motor[TIRE_BL].dir = BRAKE;
+ if(count>=10000) {
+ mode=30;
+ count=0;
+ }
}
} else {
if(mode==22) {
- motor[TIRE_FR].pwm = normal;
- motor[TIRE_FR].dir = FOR;
- motor[TIRE_FL].pwm = 0;
- motor[TIRE_FL].dir = FREE;
- motor[TIRE_BR].pwm = 0;
- motor[TIRE_BR].dir = FREE;
- motor[TIRE_BL].pwm = normal;
- motor[TIRE_BL].dir = BACK;
- if(g[1]==0) {
+ motor[TIRE_FR].pwm = 0;
+ motor[TIRE_FR].dir = FREE;
+ motor[TIRE_FL].pwm = 25;
+ motor[TIRE_FL].dir = FOR;
+ motor[TIRE_BR].pwm = 25;
+ motor[TIRE_BR].dir = BACK;
+ motor[TIRE_BL].pwm = 0;
+ motor[TIRE_BL].dir = FREE;
+ if(g[0]==0&&count>=10000) {
+ mode=30;
count=0;
- cross=0;
- mode=30;
+ cros=0;
}
}
}
@@ -1702,7 +1773,7 @@
motor[TIRE_FL].dir = BACK;
motor[TIRE_BR].pwm = 60;
motor[TIRE_BR].dir = FOR;
- motor[TIRE_BL].pwm = 60;
+ motor[TIRE_BL].pwm = 57;
motor[TIRE_BL].dir = BACK;
if(g[1]==98) {
mode=31;
@@ -1735,15 +1806,15 @@
count=0;
}
} else if(mode==33) {
- motor[TIRE_FR].pwm = 0;
- motor[TIRE_FR].dir = FREE;
- motor[TIRE_FL].pwm = 25;
- motor[TIRE_FL].dir = BACK;
- motor[TIRE_BR].pwm = 25;
- motor[TIRE_BR].dir = FOR;
- motor[TIRE_BL].pwm = 0;
- motor[TIRE_BL].dir = FREE;
- if(g[3]==0) {
+ motor[TIRE_FR].pwm = 30;
+ motor[TIRE_FR].dir = FOR;
+ motor[TIRE_FL].pwm = 0;
+ motor[TIRE_FL].dir = FREE;
+ motor[TIRE_BR].pwm = 0;
+ motor[TIRE_BR].dir = FREE;
+ motor[TIRE_BL].pwm = 30;
+ motor[TIRE_BL].dir = BACK;
+ if(g[3]==0&&count>=20000) {
count=0;
if(Twsh==2) {
solenoid.solenoid2 = SOLENOID_OFF;
@@ -1751,24 +1822,9 @@
mode=40;
}
} else if(mode==40) {
- if(LIF||LIB) {
+ if(LIB) {
mode=42;
}
-
- if(counts==false&&g[0]==0) {
- cros++;
- counts=true;
- }
- if(counts==true&&g[0]==99) {
- counts=false;
- }
-
- if(cros==2) {
- // mode=41;
- //count=0;
- //cros=0;
- }//ゆっくりモードに入れなかった時の保険
-
switch(g[3]) {
case 98:
motor[TIRE_FR].pwm = normal;
@@ -1779,12 +1835,12 @@
motor[TIRE_BR].dir = FOR;
motor[TIRE_BL].pwm = normal;
motor[TIRE_BL].dir = FOR;
- if(count>20000) {
+ if(count>=10000) {
cross++;
count=0;
}
mtc2=true;
- if(cross==1) {
+ if(cross==2) {
mode=41;
count=0;
cross=0;
@@ -1917,23 +1973,20 @@
count=0;
mode=70;
normal=60;
- fast=80;
+ fast=70;
slow=40;
}
} else if(mode==42) {
motor[TIRE_FR].pwm = 0;
motor[TIRE_FR].dir = FREE;
- motor[TIRE_FL].pwm = 30;
+ motor[TIRE_FL].pwm = 20;
motor[TIRE_FL].dir = FOR;
- motor[TIRE_BR].pwm = 30;
+ motor[TIRE_BR].pwm = 20;
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = 0;
motor[TIRE_BL].dir = FREE;
if(g[0]==0) {
count=0;
- mode=70;
- normal=60;
- fast=80;
slow=40;
}
@@ -2079,9 +2132,6 @@
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = 20;
motor[TIRE_BL].dir = FOR;
- if(StertSW) {
- SW_flag = true;
- }
}
}
#endif
@@ -2537,7 +2587,7 @@
motor[TIRE_BL].pwm = 20;
motor[TIRE_BL].dir = FOR;
//どれくらい回転するかって値
- if(count>=3300) {
+ if(count>=100) {
count=0;
mode=30;
}
@@ -2565,8 +2615,9 @@
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = 0;
motor[TIRE_BL].dir = FREE;
- if(g[0]==0) {
+ if(g[0]==0&&count>=10000) {
mode=30;
+ count=0;
cros=0;
}
}
@@ -2619,7 +2670,7 @@
motor[TIRE_BR].dir = BACK;
motor[TIRE_BL].pwm = 0;
motor[TIRE_BL].dir = FOR;
- if(g[3]==0) {
+ if(g[3]==0&&count>=20000) {
count=0;
if(Twsh==2) {
solenoid.solenoid2 = SOLENOID_OFF;
@@ -2791,6 +2842,9 @@
if(g[1]==0) {
count=0;
mode=70;
+ normal=60;
+ fast=70;
+ slow=40;
}
} else if(mode==42) {
motor[TIRE_FR].pwm = 20;