ジャパンオープン用のメインプログラム
Dependencies: mbed AQM1602 HMC6352 PID
Diff: main_processing/setup_command_active/command.cpp
- 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){