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

Dependencies:   mbed AQM1602 HMC6352 PID

Revision:
4:52da8da146d4
Parent:
3:c49ea7ad8e91
Child:
5:5ff3a7d5d8c2
--- a/main_processing/setup_command_active/command.cpp	Thu Mar 03 11:47:49 2016 +0000
+++ b/main_processing/setup_command_active/command.cpp	Fri Mar 04 03:39:29 2016 +0000
@@ -89,20 +89,22 @@
     }
 }
 uint8_t X_ZERO_Function(uint8_t *x, uint8_t *y){
-    if(sys.jump_flag!=STATE_NUM_Y){
-       *y = sys.jump_flag;
-       while(item[*y].str_num<2){
-            *y++;
+    uint8_t i;
+    if(sys.jump_flag!=JUMP_TAG_MAX){//jump
+        for(i=0; i<STATE_NUM_Y; i++){
+            if(sys.jump_flag==item[i].tag_num) break;
+        }
+        if(i<STATE_NUM_Y){
+            *y = i;
             *y %= STATE_NUM_Y;
-            *x=0;
         }
-       sys.jump_flag=STATE_NUM_Y;
+        sys.jump_flag=JUMP_TAG_MAX;
     }
-    LineKeeper=0x7;
+    LineKeeper=0x7;//line
     return 0;
 }
 uint8_t X_NZERO_Function(uint8_t *x, uint8_t *y){
-    LineKeeper=0x0;
+    LineKeeper=0x0;//line
     return 0;
 }
 uint8_t LcdPrint(uint8_t *x, uint8_t *y){
@@ -117,7 +119,10 @@
 }
 void Command(void){
     uint8_t SwState,x=0,y=0, z;
-    sys.jump_flag=STATE_NUM_Y;
+    uint8_t i;
+    
+    sys.jump_flag=JUMP_TAG_MAX;
+    LcdPrint(&x,&y);
     while(1){
         SwState = ReadSw();
         if(SwState == NONE){
@@ -130,46 +135,38 @@
                 //Z==1...Once
                 //Z==0...Endless
             }
-            //if((x==0)&&(sys.jump_flag!=STATE_NUM_Y)){jump&lcd}
+            
+            //jump
+            if((x==0)&&(sys.jump_flag!=JUMP_TAG_MAX)){
+                for(i=0; i<STATE_NUM_Y; i++){
+                    if(sys.jump_flag==item[i].tag_num) break;
+                }
+                if(i<STATE_NUM_Y){
+                    y = i;
+                    y %= STATE_NUM_Y;
+                }
+                sys.jump_flag=JUMP_TAG_MAX;
+                LcdPrint(&x,&y);
+            }
+            
             continue;
         }
         if(SwState == UP){
-            do{
-                y += -1 + STATE_NUM_Y;
-                y %= STATE_NUM_Y;
-                x=0;
-            }while(item[y].str_num<2);
+            y += -1 + STATE_NUM_Y;
+            y %= STATE_NUM_Y;
+            x=0;
         }
         if(SwState == DOWN){
-            do{
-                y++;
-                y %= STATE_NUM_Y;
-                x=0;
-            }while(item[y].str_num<2);
+            y++;
+            y %= STATE_NUM_Y;
+            x=0;
         }
         if(SwState == RIGHT){
-        
-            if(item[y].str_num==1) x=0;
+            if(item[y].str_num<=1) x=0;
             else x++;
-            if(x==item[y].str_num) x=0;
-            if(x>=item[y].str_num) x=0;
-            else x %= STATE_NUM_X;
-            
-            
-            /*
-            if(lcdstr[y][1][0]==0) x=0;
-            else x++;
-            if(x==STATE_NUM_X) x=0;
-            if(lcdstr[y][x][0]==0) x=0;
-            else x %= STATE_NUM_X;
-            */
+            x %= item[y].str_num;
         }
         if(SwState == LEFT){
-            if((x!=0)&&(sys.jump_flag!=STATE_NUM_Y)){
-                y = sys.jump_flag;
-                sys.jump_flag=STATE_NUM_Y;
-            
-            }
             x=0;
         }
         if(x==0){