![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Main Program
Dependencies: mbed AQM1602 HMC6352 PID
Diff: main_processing/strategy/strategy.cpp
- Revision:
- 41:3cdcdec9c885
- Parent:
- 40:f68474b1d5e7
- Child:
- 42:02aaa806d929
diff -r f68474b1d5e7 -r 3cdcdec9c885 main_processing/strategy/strategy.cpp --- a/main_processing/strategy/strategy.cpp Thu Feb 04 07:12:34 2016 +0000 +++ b/main_processing/strategy/strategy.cpp Thu Feb 04 11:43:53 2016 +0000 @@ -68,10 +68,11 @@ } uint8_t LineSign[3]; uint8_t LineFirst[2]; -void LineClear_A(void){LineSign[A_SPOT] = 0;} -void LineClear_B(void){LineSign[B_SPOT] = 0;} -void LineClear_C(void){LineSign[C_SPOT] = 0;} +void LineClear_A(void){LineSign[A_SPOT]=0;data.lnFlag[A_SPOT]=0;} +void LineClear_B(void){LineSign[B_SPOT]=0;data.lnFlag[B_SPOT]=0;} +void LineClear_C(void){LineSign[C_SPOT]=0;data.lnFlag[C_SPOT]=0;} void LineCall_A(void){ + // LineSign[A_SPOT] = 1; if(LineSign[B_SPOT]==0){ LineFirst[X_AXIS] = A_SPOT; @@ -81,9 +82,13 @@ LineFirst[Y_AXIS] = AB_SPOT; } } + // + if((Line[A_SPOT].read()==1)||(1)) data.lnFlag[A_SPOT]=1; + // Line_timeout[A_SPOT].attach(&LineClear_A, 0.5); } void LineCall_B(void){ + // LineSign[B_SPOT] = 1; if(LineSign[A_SPOT]==0){ LineFirst[X_AXIS] = B_SPOT; @@ -93,13 +98,20 @@ LineFirst[Y_AXIS] = AB_SPOT; } } + // + if((Line[B_SPOT].read()==1)||(1)) data.lnFlag[B_SPOT]=1; + // Line_timeout[B_SPOT].attach(&LineClear_B, 0.5); } void LineCall_C(void){ + // LineSign[C_SPOT] = 1; if(!((LineSign[A_SPOT]==1)&&(LineSign[B_SPOT]==1))){ LineFirst[Y_AXIS] = C_SPOT; } + // + if((Line[C_SPOT].read()==1)||(1)) data.lnFlag[C_SPOT]=1; + // Line_timeout[C_SPOT].attach(&LineClear_C, 0.5); } void modeAttack1(void){ @@ -121,6 +133,10 @@ LineSign[B_SPOT]=0; LineSign[C_SPOT]=0; + data.lnFlag[A_SPOT]=0; + data.lnFlag[B_SPOT]=0; + data.lnFlag[C_SPOT]=0; + data.KickOffFlag=0; } if(data.IrFlag==1){ @@ -128,9 +144,9 @@ data.IrFlag=0; } if(data.PidFlag==1){ - Line_ticker.detach(); + //Line_ticker.detach(); PidUpdate(); - Line_ticker.attach(&ReadLine, 0.005); + //Line_ticker.attach(&ReadLine, 0.005); data.PidFlag=0; } ir_x = ir_move_val[data.irNotice][data.irPosition][IR_X]; @@ -206,6 +222,11 @@ vy=0; } } + if(RawLineSignal>0){ + Line_timeout[A_SPOT].attach(&LineClear_A, 0.5); + Line_timeout[B_SPOT].attach(&LineClear_B, 0.5); + Line_timeout[C_SPOT].attach(&LineClear_C, 0.5); + } move( vx, vy,