Main Program

Dependencies:   mbed AQM1602 HMC6352 PID

Committer:
lilac0112_1
Date:
Sat Jan 30 09:27:51 2016 +0000
Revision:
22:a95f7c63af3c
Parent:
21:d69a8f3c76e1
Child:
23:d95d8d3e89f3

        

Who changed what in which revision?

UserRevisionLine numberNew 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 22:a95f7c63af3c 81 Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);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 22:a95f7c63af3c 93 Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);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 22:a95f7c63af3c 106 Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0;
lilac0112_1 19:342da3a5a474 107 }
lilac0112_1 22:a95f7c63af3c 108 uint8_t LoopFunction5(uint8_t x){
lilac0112_1 22:a95f7c63af3c 109 char buf[0x10];
lilac0112_1 22:a95f7c63af3c 110 sprintf(buf, "Enter");
lilac0112_1 22:a95f7c63af3c 111 Lcd.locate(0, 1);Lcd.print(buf);
lilac0112_1 22:a95f7c63af3c 112 hmc.setCalibrationMode(HMC6352_EXIT_CALIB);
lilac0112_1 22:a95f7c63af3c 113 return 1;
lilac0112_1 22:a95f7c63af3c 114 }
lilac0112_1 22:a95f7c63af3c 115 uint8_t LoopFunction6(uint8_t x){
lilac0112_1 22:a95f7c63af3c 116 char buf[0x10];
lilac0112_1 22:a95f7c63af3c 117 sprintf(buf, "Exit");
lilac0112_1 22:a95f7c63af3c 118 Lcd.locate(0, 1);Lcd.print(buf);
lilac0112_1 22:a95f7c63af3c 119 hmc.setCalibrationMode(HMC6352_ENTER_CALIB);
lilac0112_1 22:a95f7c63af3c 120 return 1;
lilac0112_1 22:a95f7c63af3c 121 }
lilac0112_1 19:342da3a5a474 122 uint8_t LoopFunction7(uint8_t x){ return 0; }
lilac0112_1 19:342da3a5a474 123 uint8_t LoopFunction8(uint8_t x){ return 0; }
lilac0112_1 19:342da3a5a474 124 uint8_t LoopFunction9(uint8_t x){ return 0; }
lilac0112_1 19:342da3a5a474 125 uint8_t LoopFunctionA(uint8_t x){ return 0; }
lilac0112_1 22:a95f7c63af3c 126 uint8_t LoopFunctionB(uint8_t x){
lilac0112_1 22:a95f7c63af3c 127 char buf[0x10];
lilac0112_1 22:a95f7c63af3c 128 if(x==1) data.strategy = 6;
lilac0112_1 22:a95f7c63af3c 129 if(x==2) data.strategy = 7;
lilac0112_1 22:a95f7c63af3c 130 if(x==3) data.strategy = 8;
lilac0112_1 22:a95f7c63af3c 131 data.init_point_flag=1;
lilac0112_1 22:a95f7c63af3c 132 sprintf(buf, "Make a strategy");
lilac0112_1 22:a95f7c63af3c 133 Lcd.locate(0, 1);Lcd.print(buf);return 0;
lilac0112_1 22:a95f7c63af3c 134 }
lilac0112_1 22:a95f7c63af3c 135 uint8_t LoopFunctionC(uint8_t x){
lilac0112_1 22:a95f7c63af3c 136 char buf[0x10];
lilac0112_1 22:a95f7c63af3c 137 if(x==1) data.strategy = 9;
lilac0112_1 22:a95f7c63af3c 138 if(x==2) data.strategy = 10;
lilac0112_1 22:a95f7c63af3c 139 if(x==3) data.strategy = 11;
lilac0112_1 22:a95f7c63af3c 140 data.init_point_flag=1;
lilac0112_1 22:a95f7c63af3c 141 sprintf(buf, "Make a strategy");
lilac0112_1 22:a95f7c63af3c 142 Lcd.locate(0, 1);Lcd.print(buf);return 0;
lilac0112_1 22:a95f7c63af3c 143 }
lilac0112_1 19:342da3a5a474 144 uint8_t LoopFunctionD(uint8_t x){
lilac0112_1 19:342da3a5a474 145 char buf[0x10];
lilac0112_1 19:342da3a5a474 146 if(x==1) data.strategy = 0;
lilac0112_1 19:342da3a5a474 147 if(x==2) data.strategy = 1;
lilac0112_1 19:342da3a5a474 148 if(x==3) data.strategy = 2;
lilac0112_1 19:342da3a5a474 149 data.init_point_flag=1;
lilac0112_1 19:342da3a5a474 150 sprintf(buf, "Make a strategy");
lilac0112_1 19:342da3a5a474 151 Lcd.locate(0, 1);Lcd.print(buf);return 0;
lilac0112_1 19:342da3a5a474 152 }
lilac0112_1 19:342da3a5a474 153 uint8_t LoopFunctionE(uint8_t x){
lilac0112_1 19:342da3a5a474 154 char buf[0x10];
lilac0112_1 19:342da3a5a474 155 if(x==1) data.strategy = 3;
lilac0112_1 19:342da3a5a474 156 if(x==2) data.strategy = 4;
lilac0112_1 19:342da3a5a474 157 if(x==3) data.strategy = 5;
lilac0112_1 19:342da3a5a474 158 data.init_point_flag=1;
lilac0112_1 19:342da3a5a474 159 sprintf(buf, "Make a strategy");
lilac0112_1 19:342da3a5a474 160 Lcd.locate(0, 1);Lcd.print(buf);return 0;
lilac0112_1 19:342da3a5a474 161 }
lilac0112_1 19:342da3a5a474 162 uint8_t LoopFunctionF(uint8_t x){ return 0; }