ジャパンオープン用のメインプログラム

Dependencies:   mbed AQM1602 HMC6352 PID

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){