Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed AQM1602 HMC6352 PID
main_processing/setup_command_active/command_functions.cpp@11:3efae754e6ef, 2016-03-10 (annotated)
- Committer:
- lilac0112_1
- Date:
- Thu Mar 10 08:26:33 2016 +0000
- Revision:
- 11:3efae754e6ef
- Parent:
- 10:6df631c39f9b
- Child:
- 14:b510adcb6065
somehow
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 | 10:6df631c39f9b | 7 | sprintf(buf, "Str%2d%.10s", sys.strategy, act[sys.strategy].LcdStr); |
| lilac0112_1 | 4:52da8da146d4 | 8 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 9 | } |
| lilac0112_1 | 10:6df631c39f9b | 10 | else if(x==2){ |
| lilac0112_1 | 10:6df631c39f9b | 11 | sprintf(buf, "%2d:S%2d M%2d L%2d", |
| lilac0112_1 | 10:6df631c39f9b | 12 | sys.pow_num, |
| lilac0112_1 | 10:6df631c39f9b | 13 | ir_pow_val[sys.pow_num][POW_SHORT], |
| lilac0112_1 | 10:6df631c39f9b | 14 | ir_pow_val[sys.pow_num][POW_MIDDLE], |
| lilac0112_1 | 10:6df631c39f9b | 15 | ir_pow_val[sys.pow_num][POW_LONG] |
| lilac0112_1 | 10:6df631c39f9b | 16 | ); |
| lilac0112_1 | 10:6df631c39f9b | 17 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 10:6df631c39f9b | 18 | return 0; |
| lilac0112_1 | 10:6df631c39f9b | 19 | } |
| lilac0112_1 | 10:6df631c39f9b | 20 | else{//x==3 |
| lilac0112_1 | 4:52da8da146d4 | 21 | sprintf(buf, "SeeYouAgain!"); |
| lilac0112_1 | 4:52da8da146d4 | 22 | Lcd.locate(0, 1);Lcd.print(buf);wait(0.5); |
| lilac0112_1 | 4:52da8da146d4 | 23 | NVIC_SystemReset(); |
| lilac0112_1 | 4:52da8da146d4 | 24 | return 1; |
| lilac0112_1 | 4:52da8da146d4 | 25 | } |
| lilac0112_1 | 4:52da8da146d4 | 26 | } |
| lilac0112_1 | 4:52da8da146d4 | 27 | uint8_t Start(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 28 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 8:25c8c75d182a | 29 | uint8_t temp; |
| lilac0112_1 | 8:25c8c75d182a | 30 | temp = sys.strategy; |
| lilac0112_1 | 4:52da8da146d4 | 31 | sprintf(buf, "CatPot"); |
| lilac0112_1 | 4:52da8da146d4 | 32 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 4:52da8da146d4 | 33 | sys.strategy=0; |
| lilac0112_1 | 10:6df631c39f9b | 34 | sys.TurnStartFlag=0; |
| lilac0112_1 | 10:6df631c39f9b | 35 | Active(); |
| lilac0112_1 | 10:6df631c39f9b | 36 | sys.strategy=temp; |
| lilac0112_1 | 10:6df631c39f9b | 37 | return 1; |
| lilac0112_1 | 10:6df631c39f9b | 38 | } |
| lilac0112_1 | 10:6df631c39f9b | 39 | uint8_t TurnAndStart(uint8_t x){ |
| lilac0112_1 | 10:6df631c39f9b | 40 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 10:6df631c39f9b | 41 | uint8_t temp; |
| lilac0112_1 | 10:6df631c39f9b | 42 | temp = sys.strategy; |
| lilac0112_1 | 10:6df631c39f9b | 43 | sprintf(buf, "CatPot"); |
| lilac0112_1 | 10:6df631c39f9b | 44 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 10:6df631c39f9b | 45 | sys.strategy=0; |
| lilac0112_1 | 10:6df631c39f9b | 46 | sys.TurnStartFlag=1; |
| lilac0112_1 | 5:5ff3a7d5d8c2 | 47 | Active(); |
| lilac0112_1 | 8:25c8c75d182a | 48 | sys.strategy=temp; |
| lilac0112_1 | 4:52da8da146d4 | 49 | return 1; |
| lilac0112_1 | 4:52da8da146d4 | 50 | } |
| lilac0112_1 | 4:52da8da146d4 | 51 | uint8_t GetIr(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 52 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 53 | ReadIr(); |
| lilac0112_1 | 4:52da8da146d4 | 54 | |
| lilac0112_1 | 4:52da8da146d4 | 55 | //if(x==1) sprintf(buf, "SHRT:%2d, LNG:%2d", data.irSpot[0], data.irSpot[1]); |
| lilac0112_1 | 4:52da8da146d4 | 56 | //if(x==2) sprintf(buf, "NOTE:%2d", data.irNotice); |
| lilac0112_1 | 4:52da8da146d4 | 57 | //if(x==3) sprintf(buf, "POSITION:%2d", data.irPosition); |
| lilac0112_1 | 4:52da8da146d4 | 58 | if(x==1) sprintf(buf, "POSI:%2d NOTE:%1d", data.irPosition, data.irNotice); |
| lilac0112_1 | 4:52da8da146d4 | 59 | if(x==2) sprintf(buf, "PH_L:%1d PH_S:%1d", data.irValPhase[IR_LONG], data.irValPhase[IR_SHORT]); |
| lilac0112_1 | 4:52da8da146d4 | 60 | if(x==3) sprintf(buf, "DIF:%1d KEY:%2d", data.irDif[IR_LONG], data.irKey); |
| lilac0112_1 | 4:52da8da146d4 | 61 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 62 | } |
| lilac0112_1 | 10:6df631c39f9b | 63 | uint8_t GetSns0(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 64 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 65 | uint8_t raw[3]; |
| lilac0112_1 | 4:52da8da146d4 | 66 | uint8_t held[3]; |
| lilac0112_1 | 4:52da8da146d4 | 67 | if(x==1){ |
| lilac0112_1 | 11:3efae754e6ef | 68 | LineKeeper=LINE_FIX;//line |
| lilac0112_1 | 10:6df631c39f9b | 69 | |
| lilac0112_1 | 4:52da8da146d4 | 70 | raw[2] = GetBit(LineRaw, 3); |
| lilac0112_1 | 4:52da8da146d4 | 71 | raw[1] = GetBit(LineRaw, 2); |
| lilac0112_1 | 4:52da8da146d4 | 72 | raw[0] = GetBit(LineRaw, 1); |
| lilac0112_1 | 4:52da8da146d4 | 73 | |
| lilac0112_1 | 4:52da8da146d4 | 74 | held[2] = GetBit(LineHold, 3); |
| lilac0112_1 | 4:52da8da146d4 | 75 | held[1] = GetBit(LineHold, 2); |
| lilac0112_1 | 4:52da8da146d4 | 76 | held[0] = GetBit(LineHold, 1); |
| lilac0112_1 | 4:52da8da146d4 | 77 | //BusOut LineKeeper(lineInA, lineInB, lineInC); |
| lilac0112_1 | 4:52da8da146d4 | 78 | //BusIn LineRaw(lineA2, lineB2, lineC2); |
| lilac0112_1 | 4:52da8da146d4 | 79 | //BusIn LineHold(lineA1, lineB1, lineC1); |
| lilac0112_1 | 4:52da8da146d4 | 80 | 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 | 81 | //sprintf(buf, "A:%1d B:%1d C:%1d ", Line[0].read(), Line[1].read(), Line[2].read()); |
| lilac0112_1 | 4:52da8da146d4 | 82 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 83 | } |
| lilac0112_1 | 4:52da8da146d4 | 84 | if(x==2){ |
| lilac0112_1 | 10:6df631c39f9b | 85 | ReadPing2(); |
| lilac0112_1 | 4:52da8da146d4 | 86 | ReadPing(); |
| lilac0112_1 | 10:6df631c39f9b | 87 | sprintf(buf, "L%3dR%3dF%3dB%3d", data.ping[L_PING], data.ping[R_PING], data.ping[F_PING], data.ping[B_PING]); |
| lilac0112_1 | 4:52da8da146d4 | 88 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 89 | } |
| lilac0112_1 | 4:52da8da146d4 | 90 | if(x==3){ |
| lilac0112_1 | 4:52da8da146d4 | 91 | //ReadIr(); |
| lilac0112_1 | 4:52da8da146d4 | 92 | //sprintf(buf, "IR_KEY:%2d", data.irKey); |
| lilac0112_1 | 4:52da8da146d4 | 93 | //sprintf(buf, "BALL:%1d", BallChecker.read()); |
| lilac0112_1 | 4:52da8da146d4 | 94 | sprintf(buf, "BALLA%6d", BallCheckerA.read_u16()); |
| lilac0112_1 | 4:52da8da146d4 | 95 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 96 | } |
| lilac0112_1 | 4:52da8da146d4 | 97 | return 0; |
| lilac0112_1 | 4:52da8da146d4 | 98 | } |
| lilac0112_1 | 4:52da8da146d4 | 99 | uint8_t GetPidValue(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 100 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 101 | PidUpdate(); |
| lilac0112_1 | 4:52da8da146d4 | 102 | sprintf(buf, "In:%03.0f Out:%+02d", cmps_set.InputPID, cmps_set.OutputPID); |
| lilac0112_1 | 4:52da8da146d4 | 103 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 104 | } |
| lilac0112_1 | 10:6df631c39f9b | 105 | uint8_t RwPid(uint8_t x){ |
| lilac0112_1 | 10:6df631c39f9b | 106 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 10:6df631c39f9b | 107 | if(x==1){ |
| lilac0112_1 | 10:6df631c39f9b | 108 | PidUpdate(); |
| lilac0112_1 | 10:6df631c39f9b | 109 | sprintf(buf, "In:%03.0f Out:%+02d", cmps_set.InputPID, cmps_set.OutputPID); |
| lilac0112_1 | 10:6df631c39f9b | 110 | Lcd.locate(0, 1);Lcd.print(buf);wait_ms(50);return 0; |
| lilac0112_1 | 10:6df631c39f9b | 111 | } |
| lilac0112_1 | 10:6df631c39f9b | 112 | if(x==2){ |
| lilac0112_1 | 10:6df631c39f9b | 113 | sys.jump_flag=START; |
| lilac0112_1 | 10:6df631c39f9b | 114 | sprintf(buf, "FaceToFront!"); |
| lilac0112_1 | 10:6df631c39f9b | 115 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 10:6df631c39f9b | 116 | hmc_reset = HMC_RST; |
| lilac0112_1 | 10:6df631c39f9b | 117 | wait_us(100); |
| lilac0112_1 | 10:6df631c39f9b | 118 | hmc_reset = HMC_RUN; |
| lilac0112_1 | 10:6df631c39f9b | 119 | for(int i=0; i<5; i++){ |
| lilac0112_1 | 10:6df631c39f9b | 120 | ReadCmps(); |
| lilac0112_1 | 10:6df631c39f9b | 121 | cmps_set.CmpsInitialValue = cmps_set.cmps; |
| lilac0112_1 | 10:6df631c39f9b | 122 | wait_ms(100); |
| lilac0112_1 | 10:6df631c39f9b | 123 | } |
| lilac0112_1 | 10:6df631c39f9b | 124 | cmps_set.CmpsDiff = REFERENCE - cmps_set.cmps; |
| lilac0112_1 | 10:6df631c39f9b | 125 | cmps_set.FrontDeg=0; |
| lilac0112_1 | 10:6df631c39f9b | 126 | return 1; |
| lilac0112_1 | 10:6df631c39f9b | 127 | } |
| lilac0112_1 | 10:6df631c39f9b | 128 | return 1; |
| lilac0112_1 | 10:6df631c39f9b | 129 | } |
| lilac0112_1 | 10:6df631c39f9b | 130 | uint8_t CalibrationEnterOrExit(uint8_t x){ |
| lilac0112_1 | 10:6df631c39f9b | 131 | static uint8_t state=0; |
| lilac0112_1 | 10:6df631c39f9b | 132 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 10:6df631c39f9b | 133 | |
| lilac0112_1 | 10:6df631c39f9b | 134 | if(x==1){ |
| lilac0112_1 | 10:6df631c39f9b | 135 | if(state==0){ |
| lilac0112_1 | 10:6df631c39f9b | 136 | sprintf(buf, "Exit>>Enter"); |
| lilac0112_1 | 10:6df631c39f9b | 137 | } |
| lilac0112_1 | 10:6df631c39f9b | 138 | if(state==1){ |
| lilac0112_1 | 10:6df631c39f9b | 139 | sprintf(buf, "Enter>>Exit"); |
| lilac0112_1 | 10:6df631c39f9b | 140 | } |
| lilac0112_1 | 10:6df631c39f9b | 141 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 10:6df631c39f9b | 142 | return 0; |
| lilac0112_1 | 10:6df631c39f9b | 143 | } |
| lilac0112_1 | 10:6df631c39f9b | 144 | if(x==2){ |
| lilac0112_1 | 10:6df631c39f9b | 145 | if(state==0){ |
| lilac0112_1 | 10:6df631c39f9b | 146 | hmc.setCalibrationMode(HMC6352_ENTER_CALIB); |
| lilac0112_1 | 10:6df631c39f9b | 147 | state=1; |
| lilac0112_1 | 10:6df631c39f9b | 148 | return 1; |
| lilac0112_1 | 10:6df631c39f9b | 149 | } |
| lilac0112_1 | 10:6df631c39f9b | 150 | if(state==1){ |
| lilac0112_1 | 10:6df631c39f9b | 151 | hmc.setCalibrationMode(HMC6352_EXIT_CALIB); |
| lilac0112_1 | 10:6df631c39f9b | 152 | state=0; |
| lilac0112_1 | 10:6df631c39f9b | 153 | return 1; |
| lilac0112_1 | 10:6df631c39f9b | 154 | } |
| lilac0112_1 | 10:6df631c39f9b | 155 | } |
| lilac0112_1 | 10:6df631c39f9b | 156 | return 1; |
| lilac0112_1 | 10:6df631c39f9b | 157 | } |
| lilac0112_1 | 10:6df631c39f9b | 158 | uint8_t CalibrationTurn(uint8_t x){ |
| lilac0112_1 | 10:6df631c39f9b | 159 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 10:6df631c39f9b | 160 | sprintf(buf, "CalibrationTurn"); |
| lilac0112_1 | 10:6df631c39f9b | 161 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 10:6df631c39f9b | 162 | hmc.setCalibrationMode(HMC6352_ENTER_CALIB);wait_ms(20); |
| lilac0112_1 | 10:6df631c39f9b | 163 | move(0,0,5);tx_motor(); |
| lilac0112_1 | 10:6df631c39f9b | 164 | wait(5); |
| lilac0112_1 | 10:6df631c39f9b | 165 | move(0,0,0);tx_motor(); |
| lilac0112_1 | 10:6df631c39f9b | 166 | hmc.setCalibrationMode(HMC6352_EXIT_CALIB);wait_ms(20); |
| lilac0112_1 | 10:6df631c39f9b | 167 | sys.jump_flag=GET_PID_VALUE; |
| lilac0112_1 | 10:6df631c39f9b | 168 | return 1; |
| lilac0112_1 | 10:6df631c39f9b | 169 | } |
| lilac0112_1 | 4:52da8da146d4 | 170 | uint8_t CalibrationEnter(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 171 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 172 | sprintf(buf, "Enter"); |
| lilac0112_1 | 4:52da8da146d4 | 173 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 5:5ff3a7d5d8c2 | 174 | hmc.setCalibrationMode(HMC6352_ENTER_CALIB); |
| lilac0112_1 | 4:52da8da146d4 | 175 | sys.jump_flag=CALIBRATION_EXIT; |
| lilac0112_1 | 4:52da8da146d4 | 176 | return 1; |
| lilac0112_1 | 4:52da8da146d4 | 177 | } |
| lilac0112_1 | 4:52da8da146d4 | 178 | uint8_t CalibrationExit(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 179 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 180 | sprintf(buf, "Exit"); |
| lilac0112_1 | 4:52da8da146d4 | 181 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 5:5ff3a7d5d8c2 | 182 | hmc.setCalibrationMode(HMC6352_EXIT_CALIB); |
| lilac0112_1 | 4:52da8da146d4 | 183 | sys.jump_flag=START; |
| lilac0112_1 | 4:52da8da146d4 | 184 | return 1; |
| lilac0112_1 | 4:52da8da146d4 | 185 | } |
| lilac0112_1 | 4:52da8da146d4 | 186 | uint8_t FrontReset(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 187 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 188 | sys.jump_flag=START; |
| lilac0112_1 | 4:52da8da146d4 | 189 | sprintf(buf, "FaceToFront!"); |
| lilac0112_1 | 4:52da8da146d4 | 190 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 4:52da8da146d4 | 191 | for(int i=0; i<5; i++){ |
| lilac0112_1 | 4:52da8da146d4 | 192 | ReadCmps(); |
| lilac0112_1 | 4:52da8da146d4 | 193 | cmps_set.CmpsInitialValue = cmps_set.cmps; |
| lilac0112_1 | 4:52da8da146d4 | 194 | wait_ms(100); |
| lilac0112_1 | 4:52da8da146d4 | 195 | } |
| lilac0112_1 | 4:52da8da146d4 | 196 | cmps_set.CmpsDiff = REFERENCE - cmps_set.cmps; |
| lilac0112_1 | 4:52da8da146d4 | 197 | cmps_set.FrontDeg=0; |
| lilac0112_1 | 4:52da8da146d4 | 198 | return 1; |
| lilac0112_1 | 4:52da8da146d4 | 199 | } |
| lilac0112_1 | 4:52da8da146d4 | 200 | uint8_t SetPower1(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 201 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 202 | if(x==1){ |
| lilac0112_1 | 4:52da8da146d4 | 203 | sys.s_pow = 20; |
| lilac0112_1 | 4:52da8da146d4 | 204 | sys.l_pow = 20; |
| lilac0112_1 | 4:52da8da146d4 | 205 | } |
| lilac0112_1 | 4:52da8da146d4 | 206 | if(x==2){ |
| lilac0112_1 | 4:52da8da146d4 | 207 | sys.s_pow = 30; |
| lilac0112_1 | 4:52da8da146d4 | 208 | sys.l_pow = 30; |
| lilac0112_1 | 4:52da8da146d4 | 209 | } |
| lilac0112_1 | 4:52da8da146d4 | 210 | if(x==3){ |
| lilac0112_1 | 4:52da8da146d4 | 211 | sys.s_pow = 40; |
| lilac0112_1 | 4:52da8da146d4 | 212 | sys.l_pow = 40; |
| lilac0112_1 | 4:52da8da146d4 | 213 | } |
| lilac0112_1 | 4:52da8da146d4 | 214 | sys.jump_flag=START; |
| lilac0112_1 | 4:52da8da146d4 | 215 | sprintf(buf, "TuningS_power"); |
| lilac0112_1 | 4:52da8da146d4 | 216 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 217 | } |
| lilac0112_1 | 4:52da8da146d4 | 218 | uint8_t SetPower2(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 219 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 220 | if(x==1){ |
| lilac0112_1 | 4:52da8da146d4 | 221 | sys.s_pow = 20; |
| lilac0112_1 | 4:52da8da146d4 | 222 | sys.l_pow = 30; |
| lilac0112_1 | 4:52da8da146d4 | 223 | } |
| lilac0112_1 | 4:52da8da146d4 | 224 | if(x==2){ |
| lilac0112_1 | 4:52da8da146d4 | 225 | sys.s_pow = 25; |
| lilac0112_1 | 4:52da8da146d4 | 226 | sys.l_pow = 35; |
| lilac0112_1 | 4:52da8da146d4 | 227 | } |
| lilac0112_1 | 4:52da8da146d4 | 228 | if(x==3){ |
| lilac0112_1 | 4:52da8da146d4 | 229 | sys.s_pow = 35; |
| lilac0112_1 | 4:52da8da146d4 | 230 | sys.l_pow = 45; |
| lilac0112_1 | 4:52da8da146d4 | 231 | } |
| lilac0112_1 | 4:52da8da146d4 | 232 | sys.jump_flag=START; |
| lilac0112_1 | 4:52da8da146d4 | 233 | sprintf(buf, "TuningL_power"); |
| lilac0112_1 | 4:52da8da146d4 | 234 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 235 | } |
| lilac0112_1 | 7:efe90188a49d | 236 | uint8_t SetPowerUp(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 237 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 7:efe90188a49d | 238 | uint8_t i=(sys.pow_num+(-1+POW_COMBI_NUM))%POW_COMBI_NUM; |
| lilac0112_1 | 7:efe90188a49d | 239 | if(x==1){ |
| lilac0112_1 | 7:efe90188a49d | 240 | 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 | 241 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 7:efe90188a49d | 242 | return 0; |
| lilac0112_1 | 7:efe90188a49d | 243 | } |
| lilac0112_1 | 7:efe90188a49d | 244 | else{//x==2 |
| lilac0112_1 | 7:efe90188a49d | 245 | sys.pow_num = i; |
| lilac0112_1 | 7:efe90188a49d | 246 | sys.s_pow = ir_pow_val[sys.pow_num][POW_SHORT]; |
| lilac0112_1 | 7:efe90188a49d | 247 | sys.m_pow = ir_pow_val[sys.pow_num][POW_MIDDLE]; |
| lilac0112_1 | 7:efe90188a49d | 248 | sys.l_pow = ir_pow_val[sys.pow_num][POW_LONG]; |
| lilac0112_1 | 7:efe90188a49d | 249 | return 1; |
| lilac0112_1 | 7:efe90188a49d | 250 | } |
| lilac0112_1 | 7:efe90188a49d | 251 | } |
| lilac0112_1 | 7:efe90188a49d | 252 | uint8_t SetPowerDown(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 253 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 7:efe90188a49d | 254 | uint8_t i=(sys.pow_num+1)%POW_COMBI_NUM; |
| lilac0112_1 | 7:efe90188a49d | 255 | if(x==1){ |
| lilac0112_1 | 7:efe90188a49d | 256 | 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 | 257 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 7:efe90188a49d | 258 | return 0; |
| lilac0112_1 | 7:efe90188a49d | 259 | } |
| lilac0112_1 | 7:efe90188a49d | 260 | else{//x==2 |
| lilac0112_1 | 7:efe90188a49d | 261 | sys.pow_num = i; |
| lilac0112_1 | 7:efe90188a49d | 262 | sys.s_pow = ir_pow_val[sys.pow_num][POW_SHORT]; |
| lilac0112_1 | 7:efe90188a49d | 263 | sys.m_pow = ir_pow_val[sys.pow_num][POW_MIDDLE]; |
| lilac0112_1 | 7:efe90188a49d | 264 | sys.l_pow = ir_pow_val[sys.pow_num][POW_LONG]; |
| lilac0112_1 | 7:efe90188a49d | 265 | return 1; |
| lilac0112_1 | 7:efe90188a49d | 266 | } |
| lilac0112_1 | 7:efe90188a49d | 267 | } |
| lilac0112_1 | 4:52da8da146d4 | 268 | uint8_t SoftReset(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 269 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 270 | sprintf(buf, "SeeYouAgain!"); |
| lilac0112_1 | 4:52da8da146d4 | 271 | Lcd.locate(0, 1);Lcd.print(buf);wait(0.5); |
| lilac0112_1 | 4:52da8da146d4 | 272 | NVIC_SystemReset(); |
| lilac0112_1 | 4:52da8da146d4 | 273 | return 1; |
| lilac0112_1 | 4:52da8da146d4 | 274 | } |
| lilac0112_1 | 4:52da8da146d4 | 275 | uint8_t SetStrategy1(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 276 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 277 | if(x==1) sys.strategy = 6; |
| lilac0112_1 | 4:52da8da146d4 | 278 | if(x==2) sys.strategy = 7; |
| lilac0112_1 | 4:52da8da146d4 | 279 | if(x==3) sys.strategy = 8; |
| lilac0112_1 | 4:52da8da146d4 | 280 | sys.jump_flag=START; |
| lilac0112_1 | 4:52da8da146d4 | 281 | sprintf(buf, "Make a strategy"); |
| lilac0112_1 | 4:52da8da146d4 | 282 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 283 | } |
| lilac0112_1 | 4:52da8da146d4 | 284 | uint8_t SetStrategy2(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 285 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 286 | if(x==1) sys.strategy = 9; |
| lilac0112_1 | 4:52da8da146d4 | 287 | if(x==2) sys.strategy = 10; |
| lilac0112_1 | 4:52da8da146d4 | 288 | if(x==3) sys.strategy = 11; |
| lilac0112_1 | 4:52da8da146d4 | 289 | sys.jump_flag=START; |
| lilac0112_1 | 4:52da8da146d4 | 290 | sprintf(buf, "Make a strategy"); |
| lilac0112_1 | 4:52da8da146d4 | 291 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 292 | } |
| lilac0112_1 | 4:52da8da146d4 | 293 | uint8_t SetStrategy3(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 294 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 295 | if(x==1) sys.strategy = 0; |
| lilac0112_1 | 4:52da8da146d4 | 296 | if(x==2) sys.strategy = 1; |
| lilac0112_1 | 4:52da8da146d4 | 297 | if(x==3) sys.strategy = 2; |
| lilac0112_1 | 4:52da8da146d4 | 298 | sys.jump_flag=START; |
| lilac0112_1 | 4:52da8da146d4 | 299 | sprintf(buf, "Make a strategy"); |
| lilac0112_1 | 4:52da8da146d4 | 300 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 301 | } |
| lilac0112_1 | 4:52da8da146d4 | 302 | uint8_t SetStrategy4(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 303 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 304 | if(x==1) sys.strategy = 3; |
| lilac0112_1 | 4:52da8da146d4 | 305 | if(x==2) sys.strategy = 4; |
| lilac0112_1 | 4:52da8da146d4 | 306 | if(x==3) sys.strategy = 5; |
| lilac0112_1 | 4:52da8da146d4 | 307 | sys.jump_flag=START; |
| lilac0112_1 | 4:52da8da146d4 | 308 | sprintf(buf, "Make a strategy"); |
| lilac0112_1 | 4:52da8da146d4 | 309 | Lcd.locate(0, 1);Lcd.print(buf);return 0; |
| lilac0112_1 | 4:52da8da146d4 | 310 | } |
| lilac0112_1 | 8:25c8c75d182a | 311 | uint8_t SetStrategyUp(uint8_t x){ |
| lilac0112_1 | 8:25c8c75d182a | 312 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 8:25c8c75d182a | 313 | uint8_t i=(sys.strategy+(-1+STRATEGY_NUM))%STRATEGY_NUM; |
| lilac0112_1 | 8:25c8c75d182a | 314 | if(x==1){ |
| lilac0112_1 | 8:25c8c75d182a | 315 | sprintf(buf, "%2d:%.12s", i, act[i].LcdStr); |
| lilac0112_1 | 8:25c8c75d182a | 316 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 8:25c8c75d182a | 317 | return 0; |
| lilac0112_1 | 8:25c8c75d182a | 318 | } |
| lilac0112_1 | 8:25c8c75d182a | 319 | else{//x==2 |
| lilac0112_1 | 8:25c8c75d182a | 320 | sys.strategy = i; |
| lilac0112_1 | 8:25c8c75d182a | 321 | return 1; |
| lilac0112_1 | 8:25c8c75d182a | 322 | } |
| lilac0112_1 | 8:25c8c75d182a | 323 | } |
| lilac0112_1 | 8:25c8c75d182a | 324 | uint8_t SetStrategyDown(uint8_t x){ |
| lilac0112_1 | 8:25c8c75d182a | 325 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 8:25c8c75d182a | 326 | uint8_t i=(sys.strategy+1)%STRATEGY_NUM; |
| lilac0112_1 | 8:25c8c75d182a | 327 | if(x==1){ |
| lilac0112_1 | 8:25c8c75d182a | 328 | sprintf(buf, "%2d:%.12s", i, act[i].LcdStr); |
| lilac0112_1 | 8:25c8c75d182a | 329 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 8:25c8c75d182a | 330 | return 0; |
| lilac0112_1 | 8:25c8c75d182a | 331 | } |
| lilac0112_1 | 8:25c8c75d182a | 332 | else{//x==2 |
| lilac0112_1 | 8:25c8c75d182a | 333 | sys.strategy = i; |
| lilac0112_1 | 8:25c8c75d182a | 334 | return 1; |
| lilac0112_1 | 8:25c8c75d182a | 335 | } |
| lilac0112_1 | 8:25c8c75d182a | 336 | } |
| lilac0112_1 | 4:52da8da146d4 | 337 | uint8_t Start2(uint8_t x){ |
| lilac0112_1 | 7:efe90188a49d | 338 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 4:52da8da146d4 | 339 | sprintf(buf, "CatPotForDebug"); |
| lilac0112_1 | 4:52da8da146d4 | 340 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 5:5ff3a7d5d8c2 | 341 | Active(); |
| lilac0112_1 | 4:52da8da146d4 | 342 | return 1; |
| lilac0112_1 | 9:c966191926c5 | 343 | } |
| lilac0112_1 | 9:c966191926c5 | 344 | uint8_t DriveKicker(uint8_t x){ |
| lilac0112_1 | 9:c966191926c5 | 345 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 10:6df631c39f9b | 346 | sprintf(buf, "KickForDebug"); |
| lilac0112_1 | 9:c966191926c5 | 347 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 9:c966191926c5 | 348 | wait(2); |
| lilac0112_1 | 9:c966191926c5 | 349 | kicker = 1; |
| lilac0112_1 | 9:c966191926c5 | 350 | wait(.5); |
| lilac0112_1 | 9:c966191926c5 | 351 | kicker = 0; |
| lilac0112_1 | 9:c966191926c5 | 352 | wait(.5); |
| lilac0112_1 | 9:c966191926c5 | 353 | return 1; |
| lilac0112_1 | 10:6df631c39f9b | 354 | } |
| lilac0112_1 | 10:6df631c39f9b | 355 | uint8_t DriveDribblerAndKicker(uint8_t x){ |
| lilac0112_1 | 10:6df631c39f9b | 356 | char buf[LCD_COLUMN_NUM]; |
| lilac0112_1 | 10:6df631c39f9b | 357 | sprintf(buf, "DribbleForDebug"); |
| lilac0112_1 | 10:6df631c39f9b | 358 | Lcd.locate(0, 1);Lcd.print(buf); |
| lilac0112_1 | 10:6df631c39f9b | 359 | sys.DribbleFlag=1;wait_ms(20);move(0,0,0);tx_motor(); |
| lilac0112_1 | 10:6df631c39f9b | 360 | wait(5); |
| lilac0112_1 | 10:6df631c39f9b | 361 | kicker = 1; |
| lilac0112_1 | 10:6df631c39f9b | 362 | wait(.5); |
| lilac0112_1 | 10:6df631c39f9b | 363 | kicker = 0; |
| lilac0112_1 | 10:6df631c39f9b | 364 | wait(2); |
| lilac0112_1 | 10:6df631c39f9b | 365 | sys.DribbleFlag=0;wait_ms(20);move(0,0,0);tx_motor(); |
| lilac0112_1 | 10:6df631c39f9b | 366 | return 1; |
| lilac0112_1 | 3:c49ea7ad8e91 | 367 | } |