daad

Dependencies:   mbed TrapezoidControl QEI

Revision:
22:c47f29caded6
Parent:
21:1f1e9c585da8
Child:
23:694ecfa97839
--- a/System/Process/Process.cpp	Fri Sep 13 01:36:42 2019 +0000
+++ b/System/Process/Process.cpp	Sat Sep 14 00:10:57 2019 +0000
@@ -292,6 +292,7 @@
 int mode1=0;
 int mode1g0=100000;
 
+
 static void Process1()
 {
     mode1g0=100000;
@@ -401,6 +402,8 @@
 
 #if USE_PROCESS_NUM>2
 bool mtc=false;
+//追加
+bool mtc2 = false;
 
 static void Process2()
 {
@@ -563,15 +566,144 @@
             mode=3;
         }
     } else if(mode==3) {
-        motor[TIRE_FR].pwm = 0;
-        motor[TIRE_FR].dir = BRAKE;
-        motor[TIRE_FL].pwm = 0;
-        motor[TIRE_FL].dir = BRAKE;
-        motor[TIRE_BR].pwm = 0;
-        motor[TIRE_BR].dir = BRAKE;
-        motor[TIRE_BL].pwm = 0;
-        motor[TIRE_BL].dir = BRAKE;
-    } else {
+       switch(g[2]) {
+            case 98:
+                motor[TIRE_FR].pwm = 30;
+                motor[TIRE_FR].dir = FOR;
+                motor[TIRE_FL].pwm = 30;
+                motor[TIRE_FL].dir = FOR;
+                motor[TIRE_BR].pwm = 30;
+                motor[TIRE_BR].dir = BACK;
+                motor[TIRE_BL].pwm = 30;
+                motor[TIRE_BL].dir = BACK;
+                
+                mtc2=true;
+                
+                if(mode1g0>100000) {
+                    mode1++;
+                    mode1g0=0;
+                }
+                
+                mtc2=true;
+                
+                if(mode1==2) {
+                    mode=3;
+                }
+                break;
+            case 0:
+                motor[TIRE_FR].pwm = 60;
+                motor[TIRE_FR].dir = FOR;
+                motor[TIRE_FL].pwm = 60;
+                motor[TIRE_FL].dir = FOR;
+                motor[TIRE_BR].pwm = 60;
+                motor[TIRE_BR].dir = BACK;
+                motor[TIRE_BL].pwm = 60;
+                motor[TIRE_BL].dir = BACK;
+                mtc2=true;
+                break;
+            case 255:
+                motor[TIRE_FR].pwm = 40;
+                motor[TIRE_FR].dir = FOR;
+                motor[TIRE_FL].pwm = 60;
+                motor[TIRE_FL].dir = FOR;
+                motor[TIRE_BR].pwm = 60;
+                motor[TIRE_BR].dir = BACK;
+                motor[TIRE_BL].pwm = 40;
+                motor[TIRE_BL].dir = BACK;
+                mtc2=true;
+                break;
+            case 253:
+                motor[TIRE_FR].pwm = 0;
+                motor[TIRE_FR].dir = FREE;
+                motor[TIRE_FL].pwm = 20;
+                motor[TIRE_FL].dir = FOR;
+                motor[TIRE_BR].pwm = 20;
+                motor[TIRE_BR].dir = BACK;
+                motor[TIRE_BL].pwm = 0;
+                motor[TIRE_BL].dir = FREE;
+                mtc2=true;
+                break;
+            case 254:
+                motor[TIRE_FR].pwm = 0;
+                motor[TIRE_FR].dir = FREE;
+                motor[TIRE_FL].pwm = 30;
+                motor[TIRE_FL].dir = FOR;
+                motor[TIRE_BR].pwm = 30;
+                motor[TIRE_BR].dir = BACK;
+                motor[TIRE_BL].pwm = 0;
+                motor[TIRE_BL].dir = FREE;
+                mtc2=true;
+                break;
+            case 1:
+                motor[TIRE_FR].pwm = 60;
+                motor[TIRE_FR].dir = FOR;
+                motor[TIRE_FL].pwm = 40;
+                motor[TIRE_FL].dir = FOR;
+                motor[TIRE_BR].pwm = 40;
+                motor[TIRE_BR].dir = BACK;
+                motor[TIRE_BL].pwm = 60;
+                motor[TIRE_BL].dir = BACK;
+                mtc2=true;
+                break;
+            case 3:
+                motor[TIRE_FR].pwm = 20;
+                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 = 20;
+                motor[TIRE_BL].dir = BACK;
+                mtc2=true;
+                break;
+            case 2:
+                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;
+                mtc2=true;
+                break;
+        }
+        if(g[2]!=98&&mtc2==true) {
+            switch(g[3]) {
+                case 0:
+                    mtc2=false;
+                    break;
+                case 255:
+                    motor[TIRE_BL].pwm += 5;
+                    mtc2=false;
+                    break;
+                case 253:
+                    motor[TIRE_BL].pwm += 10;
+                    mtc2=false;
+                    break;
+                case 254:
+                    motor[TIRE_BL].pwm += 20;
+                    motor[TIRE_FL].pwm = 0;
+                    mtc2=false;
+                    break;
+                case 1:
+                    motor[TIRE_FL].pwm += 5;
+                    mtc2=false;
+                    break;
+                case 3:
+                    motor[TIRE_FL].pwm += 10;
+                    mtc2=false;
+                    break;
+                case 2:
+                    motor[TIRE_FL].pwm += 20;
+                    motor[TIRE_BL].pwm = 0;
+                    mtc2=false;
+                    break;
+            }
+        }
+    }
+    
+     else {
         motor[TIRE_FR].pwm = 0;
         motor[TIRE_FR].dir = BRAKE;
         motor[TIRE_FL].pwm = 0;