![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Main Program
Dependencies: mbed AQM1602 HMC6352 PID
main_processing/setup_command_active/command.cpp@21:d69a8f3c76e1, 2016-01-30 (annotated)
- Committer:
- lilac0112_1
- Date:
- Sat Jan 30 09:02:03 2016 +0000
- Revision:
- 21:d69a8f3c76e1
- Parent:
- 19:342da3a5a474
- Child:
- 22:a95f7c63af3c
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lilac0112_1 | 19:342da3a5a474 | 1 | #include "mbed.h" |
lilac0112_1 | 19:342da3a5a474 | 2 | #include "extern.h" |
lilac0112_1 | 19:342da3a5a474 | 3 | |
lilac0112_1 | 19:342da3a5a474 | 4 | void CommandLoop(void){ |
lilac0112_1 | 19:342da3a5a474 | 5 | uint8_t SwState,x=0,y=0, z; |
lilac0112_1 | 19:342da3a5a474 | 6 | uint8_t (*Function[STATE_NUM_Y])(uint8_t x) = { |
lilac0112_1 | 19:342da3a5a474 | 7 | LoopFunction0, |
lilac0112_1 | 19:342da3a5a474 | 8 | LoopFunction1, |
lilac0112_1 | 19:342da3a5a474 | 9 | LoopFunction2, |
lilac0112_1 | 19:342da3a5a474 | 10 | LoopFunction3, |
lilac0112_1 | 19:342da3a5a474 | 11 | LoopFunction4, |
lilac0112_1 | 19:342da3a5a474 | 12 | LoopFunction5, |
lilac0112_1 | 19:342da3a5a474 | 13 | LoopFunction6, |
lilac0112_1 | 19:342da3a5a474 | 14 | LoopFunction7, |
lilac0112_1 | 19:342da3a5a474 | 15 | LoopFunction8, |
lilac0112_1 | 19:342da3a5a474 | 16 | LoopFunction9, |
lilac0112_1 | 19:342da3a5a474 | 17 | LoopFunctionA, |
lilac0112_1 | 19:342da3a5a474 | 18 | LoopFunctionB, |
lilac0112_1 | 19:342da3a5a474 | 19 | LoopFunctionC, |
lilac0112_1 | 19:342da3a5a474 | 20 | LoopFunctionD, |
lilac0112_1 | 19:342da3a5a474 | 21 | LoopFunctionE, |
lilac0112_1 | 19:342da3a5a474 | 22 | LoopFunctionF |
lilac0112_1 | 19:342da3a5a474 | 23 | }; |
lilac0112_1 | 19:342da3a5a474 | 24 | data.init_point_flag=0; |
lilac0112_1 | 19:342da3a5a474 | 25 | while(1){ |
lilac0112_1 | 19:342da3a5a474 | 26 | SwState = ReadSw(); |
lilac0112_1 | 19:342da3a5a474 | 27 | if(SwState == NONE){ |
lilac0112_1 | 19:342da3a5a474 | 28 | if(x!=0){ |
lilac0112_1 | 19:342da3a5a474 | 29 | z = (*Function[y])(x); |
lilac0112_1 | 19:342da3a5a474 | 30 | if(z==1){ |
lilac0112_1 | 19:342da3a5a474 | 31 | x=0; |
lilac0112_1 | 19:342da3a5a474 | 32 | Lcd.cls(); |
lilac0112_1 | 19:342da3a5a474 | 33 | Lcd.locate(0, 0); |
lilac0112_1 | 19:342da3a5a474 | 34 | Lcd.print(lcdstr[y][0]); |
lilac0112_1 | 19:342da3a5a474 | 35 | Lcd.locate(7, 0); |
lilac0112_1 | 19:342da3a5a474 | 36 | Lcd.print(">"); |
lilac0112_1 | 19:342da3a5a474 | 37 | Lcd.locate(9, 0); |
lilac0112_1 | 19:342da3a5a474 | 38 | if(x!=0) Lcd.print(lcdstr[y][x]); |
lilac0112_1 | 19:342da3a5a474 | 39 | } |
lilac0112_1 | 19:342da3a5a474 | 40 | //Z==1...Once |
lilac0112_1 | 19:342da3a5a474 | 41 | //Z==0...Endless |
lilac0112_1 | 19:342da3a5a474 | 42 | } |
lilac0112_1 | 19:342da3a5a474 | 43 | continue; |
lilac0112_1 | 19:342da3a5a474 | 44 | } |
lilac0112_1 | 19:342da3a5a474 | 45 | if(SwState == UP){ |
lilac0112_1 | 19:342da3a5a474 | 46 | y += -1 + STATE_NUM_Y; |
lilac0112_1 | 19:342da3a5a474 | 47 | y %= STATE_NUM_Y; |
lilac0112_1 | 19:342da3a5a474 | 48 | x=0; |
lilac0112_1 | 19:342da3a5a474 | 49 | } |
lilac0112_1 | 19:342da3a5a474 | 50 | if(SwState == DOWN){ |
lilac0112_1 | 19:342da3a5a474 | 51 | y++; |
lilac0112_1 | 19:342da3a5a474 | 52 | y %= STATE_NUM_Y; |
lilac0112_1 | 19:342da3a5a474 | 53 | x=0; |
lilac0112_1 | 19:342da3a5a474 | 54 | } |
lilac0112_1 | 19:342da3a5a474 | 55 | if(SwState == RIGHT){ |
lilac0112_1 | 19:342da3a5a474 | 56 | if(lcdstr[y][1][0]==0) x=0; |
lilac0112_1 | 19:342da3a5a474 | 57 | else x++; |
lilac0112_1 | 21:d69a8f3c76e1 | 58 | if(x==STATE_NUM_X) x=0; |
lilac0112_1 | 19:342da3a5a474 | 59 | if(lcdstr[y][x][0]==0) x=0; |
lilac0112_1 | 19:342da3a5a474 | 60 | else x %= STATE_NUM_X; |
lilac0112_1 | 19:342da3a5a474 | 61 | } |
lilac0112_1 | 19:342da3a5a474 | 62 | if(SwState == LEFT){ |
lilac0112_1 | 19:342da3a5a474 | 63 | if((x!=0)&&(data.init_point_flag==1)){ |
lilac0112_1 | 19:342da3a5a474 | 64 | data.init_point_flag=0; |
lilac0112_1 | 19:342da3a5a474 | 65 | y = 1; |
lilac0112_1 | 19:342da3a5a474 | 66 | } |
lilac0112_1 | 19:342da3a5a474 | 67 | x=0; |
lilac0112_1 | 19:342da3a5a474 | 68 | } |
lilac0112_1 | 19:342da3a5a474 | 69 | Lcd.cls(); |
lilac0112_1 | 19:342da3a5a474 | 70 | Lcd.locate(0, 0); |
lilac0112_1 | 19:342da3a5a474 | 71 | Lcd.print(lcdstr[y][0]); |
lilac0112_1 | 19:342da3a5a474 | 72 | Lcd.locate(7, 0); |
lilac0112_1 | 19:342da3a5a474 | 73 | Lcd.print(">"); |
lilac0112_1 | 19:342da3a5a474 | 74 | Lcd.locate(9, 0); |
lilac0112_1 | 19:342da3a5a474 | 75 | if(x!=0) Lcd.print(lcdstr[y][x]); |
lilac0112_1 | 19:342da3a5a474 | 76 | } |
lilac0112_1 | 19:342da3a5a474 | 77 | } |
lilac0112_1 | 19:342da3a5a474 | 78 | uint8_t LoopFunction0(uint8_t x){ |
lilac0112_1 | 19:342da3a5a474 | 79 | char buf[0x10]; |
lilac0112_1 | 19:342da3a5a474 | 80 | sprintf(buf, "CAR%d", x); |
lilac0112_1 | 19:342da3a5a474 | 81 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 19:342da3a5a474 | 82 | } |
lilac0112_1 | 19:342da3a5a474 | 83 | uint8_t LoopFunction1(uint8_t x){ |
lilac0112_1 | 19:342da3a5a474 | 84 | char buf[0x10]; |
lilac0112_1 | 19:342da3a5a474 | 85 | sprintf(buf, "CatPot"); |
lilac0112_1 | 19:342da3a5a474 | 86 | Lcd.locate(0, 1);Lcd.print(buf); |
lilac0112_1 | 19:342da3a5a474 | 87 | ActiveLoop(); |
lilac0112_1 | 19:342da3a5a474 | 88 | return 1; |
lilac0112_1 | 19:342da3a5a474 | 89 | } |
lilac0112_1 | 19:342da3a5a474 | 90 | uint8_t LoopFunction2(uint8_t x){ |
lilac0112_1 | 19:342da3a5a474 | 91 | char buf[0x10]; |
lilac0112_1 | 19:342da3a5a474 | 92 | sprintf(buf, "RR%d", x); |
lilac0112_1 | 19:342da3a5a474 | 93 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 19:342da3a5a474 | 94 | } |
lilac0112_1 | 19:342da3a5a474 | 95 | uint8_t LoopFunction3(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 96 | uint8_t LoopFunction4(uint8_t x){ |
lilac0112_1 | 19:342da3a5a474 | 97 | char buf[0x10]; |
lilac0112_1 | 19:342da3a5a474 | 98 | uint8_t linedata=0, line[3]; |
lilac0112_1 | 19:342da3a5a474 | 99 | if(x==1){ |
lilac0112_1 | 19:342da3a5a474 | 100 | linedata = RawLineSignal; |
lilac0112_1 | 19:342da3a5a474 | 101 | } |
lilac0112_1 | 19:342da3a5a474 | 102 | line[2] = (0x4 & linedata)>>2; |
lilac0112_1 | 19:342da3a5a474 | 103 | line[1] = (0x2 & linedata)>>1; |
lilac0112_1 | 19:342da3a5a474 | 104 | line[0] = (0x1 & linedata)>>0; |
lilac0112_1 | 19:342da3a5a474 | 105 | sprintf(buf, "A:%1d B:%1d C:%1d ", line[2], line[1], line[0]); |
lilac0112_1 | 19:342da3a5a474 | 106 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 19:342da3a5a474 | 107 | } |
lilac0112_1 | 19:342da3a5a474 | 108 | uint8_t LoopFunction5(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 109 | uint8_t LoopFunction6(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 110 | uint8_t LoopFunction7(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 111 | uint8_t LoopFunction8(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 112 | uint8_t LoopFunction9(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 113 | uint8_t LoopFunctionA(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 114 | uint8_t LoopFunctionB(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 115 | uint8_t LoopFunctionC(uint8_t x){ return 0; } |
lilac0112_1 | 19:342da3a5a474 | 116 | uint8_t LoopFunctionD(uint8_t x){ |
lilac0112_1 | 19:342da3a5a474 | 117 | char buf[0x10]; |
lilac0112_1 | 19:342da3a5a474 | 118 | if(x==1) data.strategy = 0; |
lilac0112_1 | 19:342da3a5a474 | 119 | if(x==2) data.strategy = 1; |
lilac0112_1 | 19:342da3a5a474 | 120 | if(x==3) data.strategy = 2; |
lilac0112_1 | 19:342da3a5a474 | 121 | data.init_point_flag=1; |
lilac0112_1 | 19:342da3a5a474 | 122 | sprintf(buf, "Make a strategy"); |
lilac0112_1 | 19:342da3a5a474 | 123 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 19:342da3a5a474 | 124 | } |
lilac0112_1 | 19:342da3a5a474 | 125 | uint8_t LoopFunctionE(uint8_t x){ |
lilac0112_1 | 19:342da3a5a474 | 126 | char buf[0x10]; |
lilac0112_1 | 19:342da3a5a474 | 127 | if(x==1) data.strategy = 3; |
lilac0112_1 | 19:342da3a5a474 | 128 | if(x==2) data.strategy = 4; |
lilac0112_1 | 19:342da3a5a474 | 129 | if(x==3) data.strategy = 5; |
lilac0112_1 | 19:342da3a5a474 | 130 | data.init_point_flag=1; |
lilac0112_1 | 19:342da3a5a474 | 131 | sprintf(buf, "Make a strategy"); |
lilac0112_1 | 19:342da3a5a474 | 132 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 19:342da3a5a474 | 133 | } |
lilac0112_1 | 19:342da3a5a474 | 134 | uint8_t LoopFunctionF(uint8_t x){ return 0; } |