CatPot 2015-2016 / Mbed 2 deprecated CatPot_2v10_T_Main

Dependencies:   mbed AQM1602 HMC6352 PID

Revision:
10:6df631c39f9b
Parent:
5:5ff3a7d5d8c2
Child:
11:3efae754e6ef
diff -r c966191926c5 -r 6df631c39f9b main_processing/strategy/strategy.cpp
--- a/main_processing/strategy/strategy.cpp	Tue Mar 08 09:52:22 2016 +0000
+++ b/main_processing/strategy/strategy.cpp	Thu Mar 10 03:03:50 2016 +0000
@@ -55,15 +55,9 @@
 }
 uint8_t HmcResetFlag;
 void HmcReset(void){
-    hmc_reset=1;
+    hmc_reset=HMC_RST;
     wait_us(100);
-    hmc_reset=0;
-}
-uint8_t PingFlag;
-void ValidPing(void){
-    if(PingFlag==0){
-        PingFlag=1;
-    }
+    hmc_reset=HMC_RUN;
 }
 uint8_t LineReverseFlag;
 void LineReverse(void){
@@ -272,10 +266,10 @@
         data.lnFlag[C_SPOT]=0;
         
         HmcResetFlag = 0;
-        PingFlag = 0;
+        sys.UswFlag = 0;
         //spi_count=0;
         */
-        hmc_reset=0;
+        hmc_reset=HMC_RUN;
         sys.KickFlag = 0;
         
         sys.KickOffFlag=0;
@@ -300,9 +294,9 @@
         PidUpdate();
         sys.PidFlag=0;
     }
-    /*if(PingFlag==1){
+    /*if(sys.UswFlag==1){
         ReadPing();
-        PingFlag=0;
+        sys.UswFlag=0;
     }*/
     /*
     if(HmcResetFlag==1){
@@ -508,10 +502,10 @@
         LinePriority[Y_AXIS]=0;
         
         HmcResetFlag = 0;
-        PingFlag = 0;
+        sys.UswFlag = 0;
         //spi_count=0;
         
-        hmc_reset=0;
+        hmc_reset=HMC_RUN;
         sys.KickFlag = 0;
         
         sys.KickOffFlag=0;
@@ -534,9 +528,9 @@
         PidUpdate();
         sys.PidFlag=0;
     }
-    if(PingFlag==1){
+    if(sys.UswFlag==1){
         ReadPing();
-        PingFlag=0;
+        sys.UswFlag=0;
     }
     /*
     if(HmcResetFlag==1){
@@ -735,10 +729,58 @@
     return;
 }
 void modeAttack4(void){
-    if(sys.KickFlag==1){
-        DriveSolenoid();
+    double ir_x_dir, ir_y_dir;
+    double ir_x_turn;
+    double ir_y_turn;
+    uint8_t ir_pow;
+    int vx,vy,vs;
+    if(sys.KickOffFlag==1){
+        
+        sys.IrBlind=0;
+        sys.LineBlind=0;
+        sys.PingBlind=0;
+        
+        sys.KickOffFlag=0;
     }
+    //data
+    if(sys.IrFlag==1){ReadIr();sys.IrFlag=0;}
+    if(sys.PidFlag==1){PidUpdate();sys.PidFlag=0;}
+    if(sys.UswFlag==1){ReadPing();sys.UswFlag=0;}
+    if(sys.UswFlag2==1){ReadPing2();sys.UswFlag2=0;}
+    //if(sys.KickFlag==1){DriveSolenoid();}
+    
+    ir_x_dir = ir_move_val[0][data.irNotice][data.irPosition][IR_X_DIR];
+    ir_y_dir = ir_move_val[0][data.irNotice][data.irPosition][IR_Y_DIR];
+    ir_x_turn = ir_move_val[0][data.irNotice][data.irPosition][IR_X_TURN];
+    ir_y_turn = ir_move_val[0][data.irNotice][data.irPosition][IR_Y_TURN];
+    if(data.irNotice==IR_CLOSER){
+        ir_pow = sys.s_pow;
+    }
+    else if(data.irNotice==IR_CLOSE){
+        ir_pow = sys.m_pow;
+    }
+    else if(data.irNotice==IR_FAR){
+        ir_pow = sys.l_pow;
+    }
+    else{//data.irNotice==IR_NONE
+        ir_pow = 0;
+    }
+    if(sys.IrBlind==1) data.irNotice=IR_NONE;
+    
+    //if((LineHold==7) 
+    
+    
+    vx = ir_pow*(ir_x_dir + ir_x_turn);
+    vy = ir_pow*(ir_y_dir + ir_y_turn);
+    vs = cmps_set.OutputPID;
+    move(
+        vx,
+        vy,
+        vs
+    );
+    if(sys.MotorFlag==1){tx_motor();sys.MotorFlag=0;}
     if(sys.stopflag==1){
+        
         //停止処理
     }
     return;
@@ -752,7 +794,7 @@
         PidUpdate();
         sys.PidFlag=0;
     }
-    move(0,0,10);
+    move(0,0,cmps_set.OutputPID);
     if(sys.MotorFlag==1){
         LED[0] = 1;
         LED[1] = 0;