ジャパンオープン用のメインプログラム
Dependencies: mbed AQM1602 HMC6352 PID
Diff: main_processing/strategy_parts/input.cpp
- Revision:
- 2:635947de1583
- Parent:
- 1:3e013ae7900d
- Child:
- 5:5ff3a7d5d8c2
--- a/main_processing/strategy_parts/input.cpp Sun Feb 28 06:38:17 2016 +0000 +++ b/main_processing/strategy_parts/input.cpp Thu Mar 03 05:58:43 2016 +0000 @@ -6,24 +6,24 @@ static uint8_t line_buf[3]={0,0,0}; wait_us(100); if(Line[0].read()==1) line_buf[0] = 100; - if(line_buf[0]==0) line_set.lnFlag[0]=0; - else line_set.lnFlag[0]=1; + if(line_buf[0]==0) data.lnFlag[0]=0; + else data.lnFlag[0]=1; if(line_buf[0]>0) line_buf[0]--; if(Line[1].read()==1) line_buf[1] = 100; - if(line_buf[1]==0) line_set.lnFlag[1]=0; - else line_set.lnFlag[1]=1; + if(line_buf[1]==0) data.lnFlag[1]=0; + else data.lnFlag[1]=1; if(line_buf[1]>0) line_buf[1]--; if(Line[2].read()==1) line_buf[2] = 100; - if(line_buf[2]==0) line_set.lnFlag[2]=0; - else line_set.lnFlag[2]=1; + if(line_buf[2]==0) data.lnFlag[2]=0; + else data.lnFlag[2]=1; if(line_buf[2]>0) line_buf[2]--; } //ball uint8_t ReadBall(void){//1or0 - data_set.ball = !BallChecker; - return (data_set.ball>0); + data.ball = !BallChecker; + return (data.ball>0); } void ReadGyro(void){ //Data can be got by interrupt. @@ -42,8 +42,8 @@ wait_us(200); spi_ss[1]=1; - data_set.ping[0] = (spi_data&0x00FF)>>0; - data_set.ping[1] = (spi_data&0xFF00)>>8; + data.ping[0] = (spi_data&0x00FF)>>0; + data.ping[1] = (spi_data&0xFF00)>>8; } void ReadPing_2(void){ uint16_t spi_data; @@ -56,8 +56,8 @@ wait_us(200); spi_ss[0]=1; - data_set.ping[2] = (spi_data&0x00FF)>>0; - data_set.ping[3] = (spi_data&0xFF00)>>8; + data.ping[2] = (spi_data&0x00FF)>>0; + data.ping[3] = (spi_data&0xFF00)>>8; } void ValidIr(void){ if(sys.IrFlag==0){ @@ -75,37 +75,71 @@ wait_us(200); spi_ss[3]=1; + /* //key/phaseL/phaseS/long/short/ // 2/ 3/ 3/ 4/ 4/ - data_set.irKey = (spi_data&0xC000)>>14;//1100000000000000 - data_set.irValPhase[IR_LONG] = (spi_data&0x3800)>>11;//0011100000000000 - data_set.irValPhase[IR_SHORT] = (spi_data&0x0700)>>8;///0000011100000000 - data_set.irSpot[IR_LONG] = (spi_data&0x00F0)>>4;///0000000011110000 - data_set.irSpot[IR_SHORT] = (spi_data&0x000F)>>0;///0000000000001111 + data.irKey = (spi_data&0xC000)>>14;//1100000000000000 + data.irValPhase[IR_LONG] = (spi_data&0x3800)>>11;//0011100000000000 + data.irValPhase[IR_SHORT] = (spi_data&0x0700)>>8;///0000011100000000 + data.irSpot[IR_LONG] = (spi_data&0x00F0)>>4;///0000000011110000 + data.irSpot[IR_SHORT] = (spi_data&0x000F)>>0;///0000000000001111 + */ - if(data_set.irKey!=0x2) data_set.irNotice=IR_NONE; + //key/phaseL/phaseS/diffL/position/ + // 2/ 3/ 3/ 3/ 5/ + data.irKey = (spi_data&0xC000)>>14;//1100000000000000 + data.irValPhase[IR_LONG] = (spi_data&0x3800)>>11;//0011100000000000 + data.irValPhase[IR_SHORT] = (spi_data&0x0700)>>8;///0000011100000000 + data.irDif[IR_LONG] = (spi_data&0x00E0)>>5;///0000000011100000 + data.irPosition = (spi_data&0x001F)>>0;///0000000000011111 - if(data_set.irValPhase[IR_LONG]>=DIS_7){ - data_set.irNotice=IR_NONE; - } - else{ - if(data_set.irValPhase[IR_SHORT]>=DIS_7){ - data_set.irNotice=IR_FAR; + if(data.irKey!=0x2) data.irNotice=IR_NONE; + + + if(data.irValPhase[IR_SHORT]>=DIS_7){ + if(data.irValPhase[IR_LONG]>=DIS_7){ + data.irNotice=IR_NONE; } else{ - if(data_set.irValPhase[IR_LONG]>=DIS_4){ - data_set.irNotice = IR_CLOSE; + if(data.irDif[IR_LONG]<=DIS_6){ + data.irNotice=IR_NONE; } else{ - data_set.irNotice = IR_CLOSER; + data.irNotice=IR_FAR; } } } + else{ + if(data.irValPhase[IR_SHORT]>=DIS_3){ + data.irNotice = IR_CLOSE; + } + else{ + data.irNotice = IR_CLOSER; + } + } - if(data_set.irNotice == IR_NONE) data_set.irPosition=11; - if(data_set.irNotice == IR_FAR) data_set.irPosition=data_set.irSpot[IR_LONG]-1; - if(data_set.irNotice == IR_CLOSE) data_set.irPosition=data_set.irSpot[IR_SHORT]+7; - if(data_set.irNotice == IR_CLOSER) data_set.irPosition=data_set.irSpot[IR_SHORT]+7; + /*if(data.irValPhase[IR_LONG]>=DIS_7){ + data.irNotice=IR_NONE; + } + else{ + if(data.irValPhase[IR_SHORT]>=DIS_7){ + data.irNotice=IR_FAR; + } + else{ + if(data.irValPhase[IR_LONG]>=DIS_4){ + data.irNotice = IR_CLOSE; + } + else{ + data.irNotice = IR_CLOSER; + } + } + }*/ + /* + if(data.irNotice == IR_NONE) data.irPosition=11; + if(data.irNotice == IR_FAR) data.irPosition=data.irSpot[IR_LONG]-1; + if(data.irNotice == IR_CLOSE) data.irPosition=data.irSpot[IR_SHORT]+7; + if(data.irNotice == IR_CLOSER) data.irPosition=data.irSpot[IR_SHORT]+7; + */ } void ReadInfo(void){