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 AQM1602 HMC6352 PID
Diff: main_processing/strategy/strategy.cpp
- 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;