I don't know if it work properly

Dependents:   2022_NHK_B_UK 2022_NHK_B_sub2

Committer:
ikarashikota
Date:
Sun Oct 09 10:13:01 2022 +0000
Revision:
0:04c98c2cfe16
Child:
1:fab774f63278
made by ikakou

Who changed what in which revision?

UserRevisionLine numberNew 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 0:04c98c2cfe16 5 ik[0] = ik1; //射出
ikarashikota 0:04c98c2cfe16 6 ik[1] = ik2; //将校
ikarashikota 0:04c98c2cfe16 7 ik[2] = ik3; //装填
ikarashikota 0:04c98c2cfe16 8 button[0] = b1; //射出
ikarashikota 0:04c98c2cfe16 9 button[1] = b2; //上
ikarashikota 0:04c98c2cfe16 10 button[2] = b3; //下
ikarashikota 0:04c98c2cfe16 11 button[3] = b4; //装填
ikarashikota 0:04c98c2cfe16 12 encoder[0] = env1; //射出
ikarashikota 0:04c98c2cfe16 13 encoder[1] = env2; //将校
ikarashikota 0:04c98c2cfe16 14 encoder[2] = env3; //装填
ikarashikota 0:04c98c2cfe16 15 for(int i=0; i<3; i++) mspeed[i] = 0;
ikarashikota 0:04c98c2cfe16 16 }
ikarashikota 0:04c98c2cfe16 17
ikarashikota 0:04c98c2cfe16 18 void SEKIkikou::runAll(float speedI, float speedLoad, float speedLift)
ikarashikota 0:04c98c2cfe16 19 {
ikarashikota 0:04c98c2cfe16 20 runInjection(speedI);
ikarashikota 0:04c98c2cfe16 21 runLoad(speedLoad);
ikarashikota 0:04c98c2cfe16 22 runLift(speedLift);
ikarashikota 0:04c98c2cfe16 23 }
ikarashikota 0:04c98c2cfe16 24
ikarashikota 0:04c98c2cfe16 25 void SEKIkikou::runInjection(float speed)
ikarashikota 0:04c98c2cfe16 26 {
ikarashikota 0:04c98c2cfe16 27 ik[0]->setSpeed(mspeed[0]);
ikarashikota 0:04c98c2cfe16 28 if(timer.read() >= 1){
ikarashikota 0:04c98c2cfe16 29 *encoder[0] = 0;
ikarashikota 0:04c98c2cfe16 30 timer.reset();
ikarashikota 0:04c98c2cfe16 31 }else{
ikarashikota 0:04c98c2cfe16 32 mspeed[0] = 0;
ikarashikota 0:04c98c2cfe16 33 }
ikarashikota 0:04c98c2cfe16 34 if(*button[0] <= 0){
ikarashikota 0:04c98c2cfe16 35 mspeed[0] = 0;
ikarashikota 0:04c98c2cfe16 36 return;
ikarashikota 0:04c98c2cfe16 37 }
ikarashikota 0:04c98c2cfe16 38 if(*encoder[0] < 360){
ikarashikota 0:04c98c2cfe16 39 mspeed[0] = speed;
ikarashikota 0:04c98c2cfe16 40 }else if(*encoder[0] >= 360){
ikarashikota 0:04c98c2cfe16 41 timer.start();
ikarashikota 0:04c98c2cfe16 42 mspeed[0] = 0;
ikarashikota 0:04c98c2cfe16 43 }
ikarashikota 0:04c98c2cfe16 44 }
ikarashikota 0:04c98c2cfe16 45
ikarashikota 0:04c98c2cfe16 46 void SEKIkikou::runLoad(float speed)
ikarashikota 0:04c98c2cfe16 47 {
ikarashikota 0:04c98c2cfe16 48 ik[2]->setSpeed(mspeed[2]);
ikarashikota 0:04c98c2cfe16 49 if(*button[3] <= 0){
ikarashikota 0:04c98c2cfe16 50 mspeed[2] = 0;
ikarashikota 0:04c98c2cfe16 51 return;
ikarashikota 0:04c98c2cfe16 52 }else if(*button[3] >= 1){
ikarashikota 0:04c98c2cfe16 53 mspeed[2] = speed;
ikarashikota 0:04c98c2cfe16 54 }else{
ikarashikota 0:04c98c2cfe16 55 mspeed[2] = 0;
ikarashikota 0:04c98c2cfe16 56 }
ikarashikota 0:04c98c2cfe16 57 }
ikarashikota 0:04c98c2cfe16 58
ikarashikota 0:04c98c2cfe16 59 void SEKIkikou::runLift(float speed)
ikarashikota 0:04c98c2cfe16 60 {
ikarashikota 0:04c98c2cfe16 61 ik[1]->setSpeed(mspeed[1]);
ikarashikota 0:04c98c2cfe16 62 if(*button[1] <= 0 && *button[2] <= 0){
ikarashikota 0:04c98c2cfe16 63 mspeed[1] = 0;
ikarashikota 0:04c98c2cfe16 64 return;
ikarashikota 0:04c98c2cfe16 65 }else if(*button[1] >= 1){
ikarashikota 0:04c98c2cfe16 66 mspeed[1] = speed;
ikarashikota 0:04c98c2cfe16 67 }else if(*button[2] >= 1){
ikarashikota 0:04c98c2cfe16 68 mspeed[1] = -speed;
ikarashikota 0:04c98c2cfe16 69 }else{
ikarashikota 0:04c98c2cfe16 70 mspeed[1] = 0;
ikarashikota 0:04c98c2cfe16 71 }
ikarashikota 0:04c98c2cfe16 72 }