ジャパンオープン用のメインプログラム
Dependencies: mbed AQM1602 HMC6352 PID
main_processing/setup_command_active/command_functions.cpp@7:efe90188a49d, 2016-03-06 (annotated)
- Committer:
- lilac0112_1
- Date:
- Sun Mar 06 15:06:28 2016 +0000
- Revision:
- 7:efe90188a49d
- Parent:
- 5:5ff3a7d5d8c2
- Child:
- 8:25c8c75d182a
active setting
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lilac0112_1 | 3:c49ea7ad8e91 | 1 | #include "mbed.h" |
lilac0112_1 | 3:c49ea7ad8e91 | 2 | #include "extern.h" |
lilac0112_1 | 3:c49ea7ad8e91 | 3 | |
lilac0112_1 | 4:52da8da146d4 | 4 | uint8_t ZeroFunction(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 5 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 6 | if(x==1){ |
lilac0112_1 | 4:52da8da146d4 | 7 | sprintf(buf, "Strategy:%2d", sys.strategy); |
lilac0112_1 | 4:52da8da146d4 | 8 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
lilac0112_1 | 4:52da8da146d4 | 9 | } |
lilac0112_1 | 4:52da8da146d4 | 10 | else{//x==2 |
lilac0112_1 | 4:52da8da146d4 | 11 | sprintf(buf, "SeeYouAgain!"); |
lilac0112_1 | 4:52da8da146d4 | 12 | Lcd.locate(0, 1);Lcd.print(buf);wait(0.5); |
lilac0112_1 | 4:52da8da146d4 | 13 | NVIC_SystemReset(); |
lilac0112_1 | 4:52da8da146d4 | 14 | return 1; |
lilac0112_1 | 4:52da8da146d4 | 15 | } |
lilac0112_1 | 4:52da8da146d4 | 16 | } |
lilac0112_1 | 4:52da8da146d4 | 17 | uint8_t Start(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 18 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 19 | sprintf(buf, "CatPot"); |
lilac0112_1 | 4:52da8da146d4 | 20 | Lcd.locate(0, 1);Lcd.print(buf); |
lilac0112_1 | 4:52da8da146d4 | 21 | sys.strategy=0; |
lilac0112_1 | 5:5ff3a7d5d8c2 | 22 | Active(); |
lilac0112_1 | 4:52da8da146d4 | 23 | return 1; |
lilac0112_1 | 4:52da8da146d4 | 24 | } |
lilac0112_1 | 4:52da8da146d4 | 25 | uint8_t GetIr(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 26 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 27 | ReadIr(); |
lilac0112_1 | 4:52da8da146d4 | 28 | |
lilac0112_1 | 4:52da8da146d4 | 29 | //if(x==1) sprintf(buf, "SHRT:%2d, LNG:%2d", data.irSpot[0], data.irSpot[1]); |
lilac0112_1 | 4:52da8da146d4 | 30 | //if(x==2) sprintf(buf, "NOTE:%2d", data.irNotice); |
lilac0112_1 | 4:52da8da146d4 | 31 | //if(x==3) sprintf(buf, "POSITION:%2d", data.irPosition); |
lilac0112_1 | 4:52da8da146d4 | 32 | if(x==1) sprintf(buf, "POSI:%2d NOTE:%1d", data.irPosition, data.irNotice); |
lilac0112_1 | 4:52da8da146d4 | 33 | if(x==2) sprintf(buf, "PH_L:%1d PH_S:%1d", data.irValPhase[IR_LONG], data.irValPhase[IR_SHORT]); |
lilac0112_1 | 4:52da8da146d4 | 34 | if(x==3) sprintf(buf, "DIF:%1d KEY:%2d", data.irDif[IR_LONG], data.irKey); |
lilac0112_1 | 4:52da8da146d4 | 35 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
lilac0112_1 | 4:52da8da146d4 | 36 | } |
lilac0112_1 | 4:52da8da146d4 | 37 | uint8_t GetLine(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 38 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 39 | uint8_t raw[3]; |
lilac0112_1 | 4:52da8da146d4 | 40 | uint8_t held[3]; |
lilac0112_1 | 4:52da8da146d4 | 41 | if(x==1){ |
lilac0112_1 | 4:52da8da146d4 | 42 | raw[2] = GetBit(LineRaw, 3); |
lilac0112_1 | 4:52da8da146d4 | 43 | raw[1] = GetBit(LineRaw, 2); |
lilac0112_1 | 4:52da8da146d4 | 44 | raw[0] = GetBit(LineRaw, 1); |
lilac0112_1 | 4:52da8da146d4 | 45 | |
lilac0112_1 | 4:52da8da146d4 | 46 | held[2] = GetBit(LineHold, 3); |
lilac0112_1 | 4:52da8da146d4 | 47 | held[1] = GetBit(LineHold, 2); |
lilac0112_1 | 4:52da8da146d4 | 48 | held[0] = GetBit(LineHold, 1); |
lilac0112_1 | 4:52da8da146d4 | 49 | //BusOut LineKeeper(lineInA, lineInB, lineInC); |
lilac0112_1 | 4:52da8da146d4 | 50 | //BusIn LineRaw(lineA2, lineB2, lineC2); |
lilac0112_1 | 4:52da8da146d4 | 51 | //BusIn LineHold(lineA1, lineB1, lineC1); |
lilac0112_1 | 4:52da8da146d4 | 52 | sprintf(buf, "A:%1d%1d B:%1d%1d C:%1d%1d ", raw[0],held[0],raw[1],held[1],raw[2],held[2]); |
lilac0112_1 | 4:52da8da146d4 | 53 | //sprintf(buf, "A:%1d B:%1d C:%1d ", Line[0].read(), Line[1].read(), Line[2].read()); |
lilac0112_1 | 4:52da8da146d4 | 54 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
lilac0112_1 | 4:52da8da146d4 | 55 | } |
lilac0112_1 | 4:52da8da146d4 | 56 | if(x==2){ |
lilac0112_1 | 4:52da8da146d4 | 57 | ReadPing(); |
lilac0112_1 | 4:52da8da146d4 | 58 | sprintf(buf, "L:%3d R:%3d", data.ping[L_PING], data.ping[R_PING]); |
lilac0112_1 | 4:52da8da146d4 | 59 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
lilac0112_1 | 4:52da8da146d4 | 60 | } |
lilac0112_1 | 4:52da8da146d4 | 61 | if(x==3){ |
lilac0112_1 | 4:52da8da146d4 | 62 | //ReadIr(); |
lilac0112_1 | 4:52da8da146d4 | 63 | //sprintf(buf, "IR_KEY:%2d", data.irKey); |
lilac0112_1 | 4:52da8da146d4 | 64 | //sprintf(buf, "BALL:%1d", BallChecker.read()); |
lilac0112_1 | 4:52da8da146d4 | 65 | sprintf(buf, "BALLA%6d", BallCheckerA.read_u16()); |
lilac0112_1 | 4:52da8da146d4 | 66 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
lilac0112_1 | 4:52da8da146d4 | 67 | } |
lilac0112_1 | 4:52da8da146d4 | 68 | return 0; |
lilac0112_1 | 4:52da8da146d4 | 69 | } |
lilac0112_1 | 4:52da8da146d4 | 70 | uint8_t GetPidValue(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 71 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 72 | PidUpdate(); |
lilac0112_1 | 4:52da8da146d4 | 73 | sprintf(buf, "In:%03.0f Out:%+02d", cmps_set.InputPID, cmps_set.OutputPID); |
lilac0112_1 | 4:52da8da146d4 | 74 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
lilac0112_1 | 4:52da8da146d4 | 75 | } |
lilac0112_1 | 4:52da8da146d4 | 76 | uint8_t CalibrationEnter(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 77 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 78 | sprintf(buf, "Enter"); |
lilac0112_1 | 4:52da8da146d4 | 79 | Lcd.locate(0, 1);Lcd.print(buf); |
lilac0112_1 | 5:5ff3a7d5d8c2 | 80 | hmc.setCalibrationMode(HMC6352_ENTER_CALIB); |
lilac0112_1 | 4:52da8da146d4 | 81 | sys.jump_flag=CALIBRATION_EXIT; |
lilac0112_1 | 4:52da8da146d4 | 82 | return 1; |
lilac0112_1 | 4:52da8da146d4 | 83 | } |
lilac0112_1 | 4:52da8da146d4 | 84 | uint8_t CalibrationExit(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 85 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 86 | sprintf(buf, "Exit"); |
lilac0112_1 | 4:52da8da146d4 | 87 | Lcd.locate(0, 1);Lcd.print(buf); |
lilac0112_1 | 5:5ff3a7d5d8c2 | 88 | hmc.setCalibrationMode(HMC6352_EXIT_CALIB); |
lilac0112_1 | 4:52da8da146d4 | 89 | sys.jump_flag=START; |
lilac0112_1 | 4:52da8da146d4 | 90 | return 1; |
lilac0112_1 | 4:52da8da146d4 | 91 | } |
lilac0112_1 | 4:52da8da146d4 | 92 | uint8_t FrontReset(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 93 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 94 | sys.jump_flag=START; |
lilac0112_1 | 4:52da8da146d4 | 95 | sprintf(buf, "FaceToFront!"); |
lilac0112_1 | 4:52da8da146d4 | 96 | Lcd.locate(0, 1);Lcd.print(buf); |
lilac0112_1 | 4:52da8da146d4 | 97 | for(int i=0; i<5; i++){ |
lilac0112_1 | 4:52da8da146d4 | 98 | ReadCmps(); |
lilac0112_1 | 4:52da8da146d4 | 99 | cmps_set.CmpsInitialValue = cmps_set.cmps; |
lilac0112_1 | 4:52da8da146d4 | 100 | wait_ms(100); |
lilac0112_1 | 4:52da8da146d4 | 101 | } |
lilac0112_1 | 4:52da8da146d4 | 102 | cmps_set.CmpsDiff = REFERENCE - cmps_set.cmps; |
lilac0112_1 | 4:52da8da146d4 | 103 | cmps_set.FrontDeg=0; |
lilac0112_1 | 4:52da8da146d4 | 104 | return 1; |
lilac0112_1 | 4:52da8da146d4 | 105 | } |
lilac0112_1 | 4:52da8da146d4 | 106 | uint8_t SetPower1(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 107 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 108 | if(x==1){ |
lilac0112_1 | 4:52da8da146d4 | 109 | sys.s_pow = 20; |
lilac0112_1 | 4:52da8da146d4 | 110 | sys.l_pow = 20; |
lilac0112_1 | 4:52da8da146d4 | 111 | } |
lilac0112_1 | 4:52da8da146d4 | 112 | if(x==2){ |
lilac0112_1 | 4:52da8da146d4 | 113 | sys.s_pow = 30; |
lilac0112_1 | 4:52da8da146d4 | 114 | sys.l_pow = 30; |
lilac0112_1 | 4:52da8da146d4 | 115 | } |
lilac0112_1 | 4:52da8da146d4 | 116 | if(x==3){ |
lilac0112_1 | 4:52da8da146d4 | 117 | sys.s_pow = 40; |
lilac0112_1 | 4:52da8da146d4 | 118 | sys.l_pow = 40; |
lilac0112_1 | 4:52da8da146d4 | 119 | } |
lilac0112_1 | 4:52da8da146d4 | 120 | sys.jump_flag=START; |
lilac0112_1 | 4:52da8da146d4 | 121 | sprintf(buf, "TuningS_power"); |
lilac0112_1 | 4:52da8da146d4 | 122 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 4:52da8da146d4 | 123 | } |
lilac0112_1 | 4:52da8da146d4 | 124 | uint8_t SetPower2(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 125 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 126 | if(x==1){ |
lilac0112_1 | 4:52da8da146d4 | 127 | sys.s_pow = 20; |
lilac0112_1 | 4:52da8da146d4 | 128 | sys.l_pow = 30; |
lilac0112_1 | 4:52da8da146d4 | 129 | } |
lilac0112_1 | 4:52da8da146d4 | 130 | if(x==2){ |
lilac0112_1 | 4:52da8da146d4 | 131 | sys.s_pow = 25; |
lilac0112_1 | 4:52da8da146d4 | 132 | sys.l_pow = 35; |
lilac0112_1 | 4:52da8da146d4 | 133 | } |
lilac0112_1 | 4:52da8da146d4 | 134 | if(x==3){ |
lilac0112_1 | 4:52da8da146d4 | 135 | sys.s_pow = 35; |
lilac0112_1 | 4:52da8da146d4 | 136 | sys.l_pow = 45; |
lilac0112_1 | 4:52da8da146d4 | 137 | } |
lilac0112_1 | 4:52da8da146d4 | 138 | sys.jump_flag=START; |
lilac0112_1 | 4:52da8da146d4 | 139 | sprintf(buf, "TuningL_power"); |
lilac0112_1 | 4:52da8da146d4 | 140 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 4:52da8da146d4 | 141 | } |
lilac0112_1 | 7:efe90188a49d | 142 | uint8_t SetPowerUp(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 143 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 7:efe90188a49d | 144 | uint8_t i=(sys.pow_num+(-1+POW_COMBI_NUM))%POW_COMBI_NUM; |
lilac0112_1 | 7:efe90188a49d | 145 | if(x==1){ |
lilac0112_1 | 7:efe90188a49d | 146 | sprintf(buf, "%2d:S%2d M%2d L%2d", i, ir_pow_val[i][POW_SHORT], ir_pow_val[i][POW_MIDDLE], ir_pow_val[i][POW_LONG]); |
lilac0112_1 | 7:efe90188a49d | 147 | Lcd.locate(0, 1);Lcd.print(buf); |
lilac0112_1 | 7:efe90188a49d | 148 | return 0; |
lilac0112_1 | 7:efe90188a49d | 149 | } |
lilac0112_1 | 7:efe90188a49d | 150 | else{//x==2 |
lilac0112_1 | 7:efe90188a49d | 151 | sys.pow_num = i; |
lilac0112_1 | 7:efe90188a49d | 152 | sys.s_pow = ir_pow_val[sys.pow_num][POW_SHORT]; |
lilac0112_1 | 7:efe90188a49d | 153 | sys.m_pow = ir_pow_val[sys.pow_num][POW_MIDDLE]; |
lilac0112_1 | 7:efe90188a49d | 154 | sys.l_pow = ir_pow_val[sys.pow_num][POW_LONG]; |
lilac0112_1 | 7:efe90188a49d | 155 | return 1; |
lilac0112_1 | 7:efe90188a49d | 156 | } |
lilac0112_1 | 7:efe90188a49d | 157 | } |
lilac0112_1 | 7:efe90188a49d | 158 | uint8_t SetPowerDown(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 159 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 7:efe90188a49d | 160 | uint8_t i=(sys.pow_num+1)%POW_COMBI_NUM; |
lilac0112_1 | 7:efe90188a49d | 161 | if(x==1){ |
lilac0112_1 | 7:efe90188a49d | 162 | sprintf(buf, "%2d:S%2d M%2d L%2d", i, ir_pow_val[i][POW_SHORT], ir_pow_val[i][POW_MIDDLE], ir_pow_val[i][POW_LONG]); |
lilac0112_1 | 7:efe90188a49d | 163 | Lcd.locate(0, 1);Lcd.print(buf); |
lilac0112_1 | 7:efe90188a49d | 164 | return 0; |
lilac0112_1 | 7:efe90188a49d | 165 | } |
lilac0112_1 | 7:efe90188a49d | 166 | else{//x==2 |
lilac0112_1 | 7:efe90188a49d | 167 | sys.pow_num = i; |
lilac0112_1 | 7:efe90188a49d | 168 | sys.s_pow = ir_pow_val[sys.pow_num][POW_SHORT]; |
lilac0112_1 | 7:efe90188a49d | 169 | sys.m_pow = ir_pow_val[sys.pow_num][POW_MIDDLE]; |
lilac0112_1 | 7:efe90188a49d | 170 | sys.l_pow = ir_pow_val[sys.pow_num][POW_LONG]; |
lilac0112_1 | 7:efe90188a49d | 171 | return 1; |
lilac0112_1 | 7:efe90188a49d | 172 | } |
lilac0112_1 | 7:efe90188a49d | 173 | } |
lilac0112_1 | 4:52da8da146d4 | 174 | uint8_t SoftReset(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 175 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 176 | sprintf(buf, "SeeYouAgain!"); |
lilac0112_1 | 4:52da8da146d4 | 177 | Lcd.locate(0, 1);Lcd.print(buf);wait(0.5); |
lilac0112_1 | 4:52da8da146d4 | 178 | NVIC_SystemReset(); |
lilac0112_1 | 4:52da8da146d4 | 179 | return 1; |
lilac0112_1 | 4:52da8da146d4 | 180 | } |
lilac0112_1 | 4:52da8da146d4 | 181 | uint8_t SetStrategy1(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 182 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 183 | if(x==1) sys.strategy = 6; |
lilac0112_1 | 4:52da8da146d4 | 184 | if(x==2) sys.strategy = 7; |
lilac0112_1 | 4:52da8da146d4 | 185 | if(x==3) sys.strategy = 8; |
lilac0112_1 | 4:52da8da146d4 | 186 | sys.jump_flag=START; |
lilac0112_1 | 4:52da8da146d4 | 187 | sprintf(buf, "Make a strategy"); |
lilac0112_1 | 4:52da8da146d4 | 188 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 4:52da8da146d4 | 189 | } |
lilac0112_1 | 4:52da8da146d4 | 190 | uint8_t SetStrategy2(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 191 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 192 | if(x==1) sys.strategy = 9; |
lilac0112_1 | 4:52da8da146d4 | 193 | if(x==2) sys.strategy = 10; |
lilac0112_1 | 4:52da8da146d4 | 194 | if(x==3) sys.strategy = 11; |
lilac0112_1 | 4:52da8da146d4 | 195 | sys.jump_flag=START; |
lilac0112_1 | 4:52da8da146d4 | 196 | sprintf(buf, "Make a strategy"); |
lilac0112_1 | 4:52da8da146d4 | 197 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 4:52da8da146d4 | 198 | } |
lilac0112_1 | 4:52da8da146d4 | 199 | uint8_t SetStrategy3(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 200 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 201 | if(x==1) sys.strategy = 0; |
lilac0112_1 | 4:52da8da146d4 | 202 | if(x==2) sys.strategy = 1; |
lilac0112_1 | 4:52da8da146d4 | 203 | if(x==3) sys.strategy = 2; |
lilac0112_1 | 4:52da8da146d4 | 204 | sys.jump_flag=START; |
lilac0112_1 | 4:52da8da146d4 | 205 | sprintf(buf, "Make a strategy"); |
lilac0112_1 | 4:52da8da146d4 | 206 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 4:52da8da146d4 | 207 | } |
lilac0112_1 | 4:52da8da146d4 | 208 | uint8_t SetStrategy4(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 209 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 210 | if(x==1) sys.strategy = 3; |
lilac0112_1 | 4:52da8da146d4 | 211 | if(x==2) sys.strategy = 4; |
lilac0112_1 | 4:52da8da146d4 | 212 | if(x==3) sys.strategy = 5; |
lilac0112_1 | 4:52da8da146d4 | 213 | sys.jump_flag=START; |
lilac0112_1 | 4:52da8da146d4 | 214 | sprintf(buf, "Make a strategy"); |
lilac0112_1 | 4:52da8da146d4 | 215 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
lilac0112_1 | 4:52da8da146d4 | 216 | } |
lilac0112_1 | 4:52da8da146d4 | 217 | uint8_t Start2(uint8_t x){ |
lilac0112_1 | 7:efe90188a49d | 218 | char buf[LCD_COLUMN_NUM]; |
lilac0112_1 | 4:52da8da146d4 | 219 | sprintf(buf, "CatPotForDebug"); |
lilac0112_1 | 4:52da8da146d4 | 220 | Lcd.locate(0, 1);Lcd.print(buf); |
lilac0112_1 | 5:5ff3a7d5d8c2 | 221 | Active(); |
lilac0112_1 | 4:52da8da146d4 | 222 | return 1; |
lilac0112_1 | 3:c49ea7ad8e91 | 223 | } |