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

Dependencies:   mbed AQM1602 HMC6352 PID

Committer:
lilac0112_1
Date:
Sun Mar 27 13:04:39 2016 +0000
Revision:
38:67bc78f3c0ab
Parent:
32:367b16d69a32
JapanSoccerOpen2016 CatPot Program(main)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lilac0112_1 0:ea35c18c85fc 1 #include "mbed.h"
lilac0112_1 0:ea35c18c85fc 2 #include "extern.h"
lilac0112_1 0:ea35c18c85fc 3
lilac0112_1 5:5ff3a7d5d8c2 4 void Command(void){
lilac0112_1 0:ea35c18c85fc 5 uint8_t SwState,x=0,y=0, z;
lilac0112_1 5:5ff3a7d5d8c2 6 uint8_t i;
lilac0112_1 5:5ff3a7d5d8c2 7
lilac0112_1 5:5ff3a7d5d8c2 8 sys.jump_flag=JUMP_TAG_MAX;
lilac0112_1 5:5ff3a7d5d8c2 9 LcdPrint(&x,&y);
lilac0112_1 0:ea35c18c85fc 10 while(1){
lilac0112_1 0:ea35c18c85fc 11 SwState = ReadSw();
lilac0112_1 0:ea35c18c85fc 12 if(SwState == NONE){
lilac0112_1 0:ea35c18c85fc 13 if(x!=0){
lilac0112_1 5:5ff3a7d5d8c2 14 z = item[y].CommandFunction(x);
lilac0112_1 0:ea35c18c85fc 15 if(z==1){
lilac0112_1 0:ea35c18c85fc 16 x=0;
lilac0112_1 5:5ff3a7d5d8c2 17 //jump
lilac0112_1 5:5ff3a7d5d8c2 18 if(sys.jump_flag!=JUMP_TAG_MAX){
lilac0112_1 5:5ff3a7d5d8c2 19 for(i=0; i<STATE_NUM_Y; i++){
lilac0112_1 5:5ff3a7d5d8c2 20 if(sys.jump_flag==item[i].tag_num) break;
lilac0112_1 5:5ff3a7d5d8c2 21 }
lilac0112_1 5:5ff3a7d5d8c2 22 if(i<STATE_NUM_Y){
lilac0112_1 5:5ff3a7d5d8c2 23 y = i;
lilac0112_1 5:5ff3a7d5d8c2 24 y %= STATE_NUM_Y;
lilac0112_1 5:5ff3a7d5d8c2 25 }
lilac0112_1 5:5ff3a7d5d8c2 26 sys.jump_flag=JUMP_TAG_MAX;
lilac0112_1 5:5ff3a7d5d8c2 27 }
lilac0112_1 5:5ff3a7d5d8c2 28 LcdPrint(&x,&y);
lilac0112_1 0:ea35c18c85fc 29 }
lilac0112_1 0:ea35c18c85fc 30 //Z==1...Once
lilac0112_1 0:ea35c18c85fc 31 //Z==0...Endless
lilac0112_1 0:ea35c18c85fc 32 }
lilac0112_1 5:5ff3a7d5d8c2 33
lilac0112_1 0:ea35c18c85fc 34 continue;
lilac0112_1 0:ea35c18c85fc 35 }
lilac0112_1 0:ea35c18c85fc 36 if(SwState == UP){
lilac0112_1 5:5ff3a7d5d8c2 37 y += -1 + STATE_NUM_Y;
lilac0112_1 5:5ff3a7d5d8c2 38 y %= STATE_NUM_Y;
lilac0112_1 5:5ff3a7d5d8c2 39 x=0;
lilac0112_1 0:ea35c18c85fc 40 }
lilac0112_1 0:ea35c18c85fc 41 if(SwState == DOWN){
lilac0112_1 5:5ff3a7d5d8c2 42 y++;
lilac0112_1 5:5ff3a7d5d8c2 43 y %= STATE_NUM_Y;
lilac0112_1 5:5ff3a7d5d8c2 44 x=0;
lilac0112_1 0:ea35c18c85fc 45 }
lilac0112_1 0:ea35c18c85fc 46 if(SwState == RIGHT){
lilac0112_1 5:5ff3a7d5d8c2 47 if(item[y].str_num<=1) x=0;
lilac0112_1 5:5ff3a7d5d8c2 48 else x++;
lilac0112_1 5:5ff3a7d5d8c2 49 x %= item[y].str_num;
lilac0112_1 0:ea35c18c85fc 50 }
lilac0112_1 0:ea35c18c85fc 51 if(SwState == LEFT){
lilac0112_1 5:5ff3a7d5d8c2 52 x=0;
lilac0112_1 5:5ff3a7d5d8c2 53 }
lilac0112_1 5:5ff3a7d5d8c2 54 if(x==0){
lilac0112_1 5:5ff3a7d5d8c2 55 X_ZERO_Function(&x,&y);
lilac0112_1 0:ea35c18c85fc 56 }
lilac0112_1 5:5ff3a7d5d8c2 57 else{
lilac0112_1 5:5ff3a7d5d8c2 58 X_NZERO_Function(&x,&y);
lilac0112_1 5:5ff3a7d5d8c2 59 }
lilac0112_1 5:5ff3a7d5d8c2 60 LcdPrint(&x,&y);
lilac0112_1 0:ea35c18c85fc 61 }
lilac0112_1 0:ea35c18c85fc 62 }
lilac0112_1 3:c49ea7ad8e91 63 uint8_t X_ZERO_Function(uint8_t *x, uint8_t *y){
lilac0112_1 4:52da8da146d4 64 uint8_t i;
lilac0112_1 4:52da8da146d4 65 if(sys.jump_flag!=JUMP_TAG_MAX){//jump
lilac0112_1 4:52da8da146d4 66 for(i=0; i<STATE_NUM_Y; i++){
lilac0112_1 4:52da8da146d4 67 if(sys.jump_flag==item[i].tag_num) break;
lilac0112_1 4:52da8da146d4 68 }
lilac0112_1 4:52da8da146d4 69 if(i<STATE_NUM_Y){
lilac0112_1 4:52da8da146d4 70 *y = i;
lilac0112_1 3:c49ea7ad8e91 71 *y %= STATE_NUM_Y;
lilac0112_1 3:c49ea7ad8e91 72 }
lilac0112_1 4:52da8da146d4 73 sys.jump_flag=JUMP_TAG_MAX;
lilac0112_1 0:ea35c18c85fc 74 }
lilac0112_1 32:367b16d69a32 75
lilac0112_1 32:367b16d69a32 76 ReadCmps();
lilac0112_1 32:367b16d69a32 77 //cmps_set.CmpsInitialValue = cmps_set.cmps;
lilac0112_1 32:367b16d69a32 78 wait_ms(10);
lilac0112_1 32:367b16d69a32 79 cmps_set.CmpsDiff = REFERENCE - cmps_set.cmps;
lilac0112_1 32:367b16d69a32 80 cmps_set.FrontDeg=0;
lilac0112_1 32:367b16d69a32 81
lilac0112_1 11:3efae754e6ef 82 LineKeeper=LINE_FREE;//line
lilac0112_1 3:c49ea7ad8e91 83 return 0;
lilac0112_1 0:ea35c18c85fc 84 }
lilac0112_1 3:c49ea7ad8e91 85 uint8_t X_NZERO_Function(uint8_t *x, uint8_t *y){
lilac0112_1 11:3efae754e6ef 86 LineKeeper=LINE_FIX;//line
lilac0112_1 3:c49ea7ad8e91 87 return 0;
lilac0112_1 0:ea35c18c85fc 88 }
lilac0112_1 3:c49ea7ad8e91 89 uint8_t LcdPrint(uint8_t *x, uint8_t *y){
lilac0112_1 3:c49ea7ad8e91 90 Lcd.cls();
lilac0112_1 3:c49ea7ad8e91 91 Lcd.locate(0, 0);
lilac0112_1 3:c49ea7ad8e91 92 Lcd.print(item[*y].LcdStr[0]);
lilac0112_1 3:c49ea7ad8e91 93 Lcd.locate(7, 0);
lilac0112_1 3:c49ea7ad8e91 94 Lcd.print(">");
lilac0112_1 3:c49ea7ad8e91 95 Lcd.locate(9, 0);
lilac0112_1 3:c49ea7ad8e91 96 if(*x!=0) Lcd.print(item[*y].LcdStr[*x]);
lilac0112_1 0:ea35c18c85fc 97 return 0;
lilac0112_1 0:ea35c18c85fc 98 }