I don't know if it work properly
Dependents: 2022_NHK_B_UK 2022_NHK_B_sub2
SEKIkikou.cpp@4:d3814c6e3694, 2022-10-09 (annotated)
- Committer:
- ikarashikota
- Date:
- Sun Oct 09 14:37:06 2022 +0000
- Revision:
- 4:d3814c6e3694
- Parent:
- 3:e62282fc7cf6
- Child:
- 6:34f3cf5b05f8
adjusted 2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ikarashikota | 0:04c98c2cfe16 | 1 | |
ikarashikota | 0:04c98c2cfe16 | 2 | #include "SEKIkikou.h" |
ikarashikota | 0:04c98c2cfe16 | 3 | |
ikarashikota | 0:04c98c2cfe16 | 4 | SEKIkikou::SEKIkikou(ikarashiMDC *ik1, ikarashiMDC *ik2, ikarashiMDC *ik3, uint8_t *b1, uint8_t *b2, uint8_t *b3, uint8_t *b4, int *env1, int *env2, int *env3){ |
ikarashikota | 1:fab774f63278 | 5 | init(ik1, ik2, ik3, b1, b2, b3, b4, env1, env2, env3); |
ikarashikota | 1:fab774f63278 | 6 | } |
ikarashikota | 1:fab774f63278 | 7 | |
ikarashikota | 1:fab774f63278 | 8 | void SEKIkikou::init(ikarashiMDC *ik1, ikarashiMDC *ik2, ikarashiMDC *ik3, uint8_t *b1, uint8_t *b2, uint8_t *b3, uint8_t *b4, int *env1, int *env2, int *env3){ |
ikarashikota | 0:04c98c2cfe16 | 9 | ik[0] = ik1; //射出 |
ikarashikota | 0:04c98c2cfe16 | 10 | ik[1] = ik2; //将校 |
ikarashikota | 0:04c98c2cfe16 | 11 | ik[2] = ik3; //装填 |
ikarashikota | 0:04c98c2cfe16 | 12 | button[0] = b1; //射出 |
ikarashikota | 0:04c98c2cfe16 | 13 | button[1] = b2; //上 |
ikarashikota | 0:04c98c2cfe16 | 14 | button[2] = b3; //下 |
ikarashikota | 0:04c98c2cfe16 | 15 | button[3] = b4; //装填 |
ikarashikota | 0:04c98c2cfe16 | 16 | encoder[0] = env1; //射出 |
ikarashikota | 0:04c98c2cfe16 | 17 | encoder[1] = env2; //将校 |
ikarashikota | 0:04c98c2cfe16 | 18 | encoder[2] = env3; //装填 |
ikarashikota | 0:04c98c2cfe16 | 19 | for(int i=0; i<3; i++) mspeed[i] = 0; |
ikarashikota | 3:e62282fc7cf6 | 20 | injecterFlag = false; |
ikarashikota | 0:04c98c2cfe16 | 21 | } |
ikarashikota | 0:04c98c2cfe16 | 22 | |
ikarashikota | 0:04c98c2cfe16 | 23 | void SEKIkikou::runAll(float speedI, float speedLoad, float speedLift) |
ikarashikota | 0:04c98c2cfe16 | 24 | { |
ikarashikota | 0:04c98c2cfe16 | 25 | runInjection(speedI); |
ikarashikota | 0:04c98c2cfe16 | 26 | runLoad(speedLoad); |
ikarashikota | 0:04c98c2cfe16 | 27 | runLift(speedLift); |
ikarashikota | 0:04c98c2cfe16 | 28 | } |
ikarashikota | 0:04c98c2cfe16 | 29 | |
ikarashikota | 1:fab774f63278 | 30 | void SEKIkikou::stopAll(){ |
ikarashikota | 2:5306c227e18b | 31 | //init(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); |
ikarashikota | 2:5306c227e18b | 32 | for(int i=0; i<4; i++){ |
ikarashikota | 2:5306c227e18b | 33 | button[i] = NULL; |
ikarashikota | 2:5306c227e18b | 34 | if(i < 3){ |
ikarashikota | 2:5306c227e18b | 35 | encoder[i] = NULL; |
ikarashikota | 4:d3814c6e3694 | 36 | mspeed[i] = 0; |
ikarashikota | 2:5306c227e18b | 37 | } |
ikarashikota | 2:5306c227e18b | 38 | } |
ikarashikota | 1:fab774f63278 | 39 | } |
ikarashikota | 1:fab774f63278 | 40 | |
ikarashikota | 0:04c98c2cfe16 | 41 | void SEKIkikou::runInjection(float speed) |
ikarashikota | 0:04c98c2cfe16 | 42 | { |
ikarashikota | 0:04c98c2cfe16 | 43 | ik[0]->setSpeed(mspeed[0]); |
ikarashikota | 0:04c98c2cfe16 | 44 | if(timer.read() >= 1){ |
ikarashikota | 0:04c98c2cfe16 | 45 | *encoder[0] = 0; |
ikarashikota | 0:04c98c2cfe16 | 46 | timer.reset(); |
ikarashikota | 0:04c98c2cfe16 | 47 | }else{ |
ikarashikota | 0:04c98c2cfe16 | 48 | mspeed[0] = 0; |
ikarashikota | 0:04c98c2cfe16 | 49 | } |
ikarashikota | 3:e62282fc7cf6 | 50 | if(*button[0] <= 0 && !injecterFlag){ |
ikarashikota | 0:04c98c2cfe16 | 51 | mspeed[0] = 0; |
ikarashikota | 0:04c98c2cfe16 | 52 | return; |
ikarashikota | 0:04c98c2cfe16 | 53 | } |
ikarashikota | 0:04c98c2cfe16 | 54 | if(*encoder[0] < 360){ |
ikarashikota | 0:04c98c2cfe16 | 55 | mspeed[0] = speed; |
ikarashikota | 3:e62282fc7cf6 | 56 | injecterFlag = true; |
ikarashikota | 0:04c98c2cfe16 | 57 | }else if(*encoder[0] >= 360){ |
ikarashikota | 0:04c98c2cfe16 | 58 | timer.start(); |
ikarashikota | 0:04c98c2cfe16 | 59 | mspeed[0] = 0; |
ikarashikota | 3:e62282fc7cf6 | 60 | injecterFlag = false; |
ikarashikota | 0:04c98c2cfe16 | 61 | } |
ikarashikota | 0:04c98c2cfe16 | 62 | } |
ikarashikota | 0:04c98c2cfe16 | 63 | |
ikarashikota | 0:04c98c2cfe16 | 64 | void SEKIkikou::runLoad(float speed) |
ikarashikota | 0:04c98c2cfe16 | 65 | { |
ikarashikota | 0:04c98c2cfe16 | 66 | ik[2]->setSpeed(mspeed[2]); |
ikarashikota | 0:04c98c2cfe16 | 67 | if(*button[3] <= 0){ |
ikarashikota | 0:04c98c2cfe16 | 68 | mspeed[2] = 0; |
ikarashikota | 0:04c98c2cfe16 | 69 | return; |
ikarashikota | 0:04c98c2cfe16 | 70 | }else if(*button[3] >= 1){ |
ikarashikota | 0:04c98c2cfe16 | 71 | mspeed[2] = speed; |
ikarashikota | 0:04c98c2cfe16 | 72 | }else{ |
ikarashikota | 0:04c98c2cfe16 | 73 | mspeed[2] = 0; |
ikarashikota | 0:04c98c2cfe16 | 74 | } |
ikarashikota | 0:04c98c2cfe16 | 75 | } |
ikarashikota | 0:04c98c2cfe16 | 76 | |
ikarashikota | 0:04c98c2cfe16 | 77 | void SEKIkikou::runLift(float speed) |
ikarashikota | 0:04c98c2cfe16 | 78 | { |
ikarashikota | 0:04c98c2cfe16 | 79 | ik[1]->setSpeed(mspeed[1]); |
ikarashikota | 0:04c98c2cfe16 | 80 | if(*button[1] <= 0 && *button[2] <= 0){ |
ikarashikota | 0:04c98c2cfe16 | 81 | mspeed[1] = 0; |
ikarashikota | 0:04c98c2cfe16 | 82 | return; |
ikarashikota | 0:04c98c2cfe16 | 83 | }else if(*button[1] >= 1){ |
ikarashikota | 0:04c98c2cfe16 | 84 | mspeed[1] = speed; |
ikarashikota | 0:04c98c2cfe16 | 85 | }else if(*button[2] >= 1){ |
ikarashikota | 0:04c98c2cfe16 | 86 | mspeed[1] = -speed; |
ikarashikota | 0:04c98c2cfe16 | 87 | }else{ |
ikarashikota | 0:04c98c2cfe16 | 88 | mspeed[1] = 0; |
ikarashikota | 0:04c98c2cfe16 | 89 | } |
ikarashikota | 0:04c98c2cfe16 | 90 | } |