daad
Dependencies: mbed TrapezoidControl QEI
Revision 25:38d4964e8aad, committed 2019-09-17
- Comitter:
- yabahiro
- Date:
- Tue Sep 17 03:46:34 2019 +0000
- Parent:
- 24:41c23c9a5058
- Commit message:
- das
Changed in this revision
System/Process/Process.cpp | Show annotated file Show diff for this revision Revisions of this file |
System/Process/Process.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 41c23c9a5058 -r 38d4964e8aad System/Process/Process.cpp --- a/System/Process/Process.cpp Mon Sep 16 00:03:18 2019 +0000 +++ b/System/Process/Process.cpp Tue Sep 17 03:46:34 2019 +0000 @@ -265,14 +265,22 @@ } - +int Twsh; #pragma region PROCESS #ifdef USE_SUBPROCESS #if USE_PROCESS_NUM>0 static void Process0() { - + if(StertSW) { + if(ZoneSW) { + current = 1; + Twsh=2; + } else { + current = 1; + Twsh=3; + } + } } #endif @@ -296,7 +304,7 @@ static void Process1() { mode1g0=100000; - mode=10; + mode=1; mode1=0; motor[TIRE_FR].dir = SetStatus(-omni[controller->AnalogL.Y][14-controller->AnalogL.X] + curve[controller->AnalogR.X]); motor[TIRE_FL].dir = SetStatus(omni[controller->AnalogL.Y][controller->AnalogL.X] + curve[controller->AnalogR.X]); @@ -409,7 +417,180 @@ { // printf("1:%d 2:%d 3:%d 4:%d 5:%d 6:%d 7:%d 8:%d\n\r",g[0],g[1],g[2],g[3],g[4],g[5],g[6],g[7]); mode1g0++; - if(g[0]!=99&&mode==10) { + if(mode==1) { + motor[TIRE_FR].pwm = 15; + motor[TIRE_FR].dir = BACK; + motor[TIRE_FL].pwm = 15; + motor[TIRE_FL].dir = FOR; + motor[TIRE_BR].pwm = 15; + motor[TIRE_BR].dir = BACK; + motor[TIRE_BL].pwm = 15; + motor[TIRE_BL].dir = FOR; + if(mode1g0>5000&&g[2]==0) { + mode1g0=0; + mode=2; + } + } else if(mode==2) { + 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; + if(mode1g0>100000) { + mode1++; + mode1g0=0; + } + mtc2=true; + if(mode1==1) { + mode=3; + mode1g0=0; + mode1=0; + } + 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 if(mode==3) { + motor[TIRE_FR].pwm = 0; + motor[TIRE_FR].dir = FREE; + motor[TIRE_FL].pwm = 15; + motor[TIRE_FL].dir = FOR; + motor[TIRE_BR].pwm = 15; + motor[TIRE_BR].dir = BACK; + motor[TIRE_BL].pwm = 0; + motor[TIRE_BL].dir = FREE; + if(mode1g0>5000&&g[0]==0) { + mode1g0=0; + mode=4; + } + } else if(mode==4) { + motor[TIRE_FR].pwm = 15; + motor[TIRE_FR].dir = BACK; + motor[TIRE_FL].pwm = 15; + motor[TIRE_FL].dir = BACK; + motor[TIRE_BR].pwm = 15; + motor[TIRE_BR].dir = FOR; + motor[TIRE_BL].pwm = 15; + motor[TIRE_BL].dir = FOR; + if(mode1g0>10000&&g[0]==0) { + mode1g0=0; + mode1=0; + mode=10; + } + } else if(g[0]!=99&&mode==10) { switch(g[0]) { case 98: motor[TIRE_FR].pwm = 30; @@ -425,7 +606,7 @@ mode1g0=0; } mtc=true; - if(mode1==2) { + if(mode1==Twsh) { mode=11; mode1g0=0; } @@ -542,14 +723,14 @@ } } } else if(mode==11) { - motor[TIRE_FR].pwm = 15; - motor[TIRE_FR].dir = BACK; + motor[TIRE_FR].pwm = 0; + motor[TIRE_FR].dir = FREE; motor[TIRE_FL].pwm = 15; motor[TIRE_FL].dir = FOR; motor[TIRE_BR].pwm = 15; motor[TIRE_BR].dir = BACK; - motor[TIRE_BL].pwm = 15; - motor[TIRE_BL].dir = FOR; + motor[TIRE_BL].pwm = 0; + motor[TIRE_BL].dir = FREE; if(mode1g0>5000&&g[2]==0) { mode1g0=0; mode=12; @@ -703,14 +884,14 @@ } } } else if(mode==21) { - motor[TIRE_FR].pwm = 15; - motor[TIRE_FR].dir = FOR; + motor[TIRE_FR].pwm = 0; + motor[TIRE_FR].dir = FREE; motor[TIRE_FL].pwm = 15; motor[TIRE_FL].dir = FOR; motor[TIRE_BR].pwm = 15; motor[TIRE_BR].dir = BACK; - motor[TIRE_BL].pwm = 15; - motor[TIRE_BL].dir = BACK; + motor[TIRE_BL].pwm = 0; + motor[TIRE_BL].dir = FREE; if(mode1g0>5000&&g[0]==0) { mode1g0=0; mode=22; @@ -864,10 +1045,10 @@ } else if(mode==31) { motor[TIRE_FR].pwm = 15; motor[TIRE_FR].dir = BACK; - motor[TIRE_FL].pwm = 15; - motor[TIRE_FL].dir = FOR; - motor[TIRE_BR].pwm = 15; - motor[TIRE_BR].dir = BACK; + motor[TIRE_FL].pwm = 0; + motor[TIRE_FL].dir = FREE; + motor[TIRE_BR].pwm = 0; + motor[TIRE_BR].dir = FREE; motor[TIRE_BL].pwm = 15; motor[TIRE_BL].dir = FOR; mode1g0++; @@ -1024,14 +1205,14 @@ } } } else if(mode==41) { - motor[TIRE_FR].pwm = 15; - motor[TIRE_FR].dir = BACK; + motor[TIRE_FR].pwm = 0; + motor[TIRE_FR].dir = FREE; motor[TIRE_FL].pwm = 15; motor[TIRE_FL].dir = BACK; motor[TIRE_BR].pwm = 15; motor[TIRE_BR].dir = FOR; - motor[TIRE_BL].pwm = 15; - motor[TIRE_BL].dir = FOR; + motor[TIRE_BL].pwm = 0; + motor[TIRE_BL].dir = FREE; if(mode1g0>5000&&g[1]==0) { mode1g0=0; mode=42; @@ -1182,14 +1363,14 @@ } } } else if(mode==51) { - motor[TIRE_FR].pwm = 15; - motor[TIRE_FR].dir = FOR; + motor[TIRE_FR].pwm = 0; + motor[TIRE_FR].dir = FREE; motor[TIRE_FL].pwm = 15; motor[TIRE_FL].dir = BACK; motor[TIRE_BR].pwm = 15; motor[TIRE_BR].dir = FOR; - motor[TIRE_BL].pwm = 15; - motor[TIRE_BL].dir = BACK; + motor[TIRE_BL].pwm = 0; + motor[TIRE_BL].dir = FREE; mode1g0++; if(mode1g0>5000&&g[3]==0) { mode1g0=0; @@ -1344,14 +1525,14 @@ } } } else if(mode==61) { - motor[TIRE_FR].pwm = 15; - motor[TIRE_FR].dir = BACK; + motor[TIRE_FR].pwm = 0; + motor[TIRE_FR].dir = FREE; motor[TIRE_FL].pwm = 15; motor[TIRE_FL].dir = BACK; motor[TIRE_BR].pwm = 15; motor[TIRE_BR].dir = FOR; - motor[TIRE_BL].pwm = 15; - motor[TIRE_BL].dir = FOR; + motor[TIRE_BL].pwm = 0; + motor[TIRE_BL].dir = FREE; if(mode1g0>5000&&g[1]==0) { mode1g0=0; mode=62; @@ -1510,35 +1691,6 @@ motor[TIRE_BR].dir = FOR; motor[TIRE_BL].pwm = 15; motor[TIRE_BL].dir = BACK; - mode1g0++; - if(mode1g0>5000&&g[3]==0) { - mode1g0=0; - mode=72; - } - } else if(mode==72) { - motor[TIRE_FR].pwm = 15; - motor[TIRE_FR].dir = BACK; - motor[TIRE_FL].pwm = 15; - motor[TIRE_FL].dir = FOR; - motor[TIRE_BR].pwm = 15; - motor[TIRE_BR].dir = BACK; - motor[TIRE_BL].pwm = 15; - motor[TIRE_BL].dir = FOR; - mode1g0++; - if(mode1g0>5000&&g[3]==0) { - mode1g0=0; - mode1=0; - mode=80; - } - } else if(mode==80) { - 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 { motor[TIRE_FR].pwm = 0; motor[TIRE_FR].dir = BRAKE;
diff -r 41c23c9a5058 -r 38d4964e8aad System/Process/Process.h --- a/System/Process/Process.h Mon Sep 16 00:03:18 2019 +0000 +++ b/System/Process/Process.h Tue Sep 17 03:46:34 2019 +0000 @@ -15,6 +15,10 @@ #define TIRE_FR 3 #define MOTOR_0 4 +#define StertSW LimitSw::IsPressed(4) //スタートスイッチ +#define ZoneSW LimitSw::IsPressed(0) //赤ゾーン用スイッチ +#define TwshSW LimitSw::IsPressed(2) //シーツタオルスイッチ + typedef union { struct