ジャパンオープン用のメインプログラム
Dependencies: mbed AQM1602 HMC6352 PID
main_processing/setup_command_active/command.cpp@38:67bc78f3c0ab, 2016-03-27 (annotated)
- 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?
User | Revision | Line number | New 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 | } |