Buggy bois / Mbed 2 deprecated WORKING_TRIAL

Dependencies:   mbed

Committer:
mazdo25
Date:
Sat Mar 09 14:27:48 2019 +0000
Revision:
3:01b5e80d842d
Parent:
1:813f4b17ae65
Initialization working, sensors not

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mazdo25 1:813f4b17ae65 1 //CURRENTLY EMPTY BUT I MAY JUST MAKE A NEW CLASS FOR THE P CONTROL
mazdo25 1:813f4b17ae65 2 class P
mazdo25 1:813f4b17ae65 3 {
mazdo25 1:813f4b17ae65 4 private:
mazdo25 1:813f4b17ae65 5 float inMin;
mazdo25 1:813f4b17ae65 6 float inMax;
mazdo25 1:813f4b17ae65 7 float control;
mazdo25 1:813f4b17ae65 8
mazdo25 1:813f4b17ae65 9 float outMin;
mazdo25 1:813f4b17ae65 10 float outMax;
mazdo25 1:813f4b17ae65 11
mazdo25 1:813f4b17ae65 12 float gain;
mazdo25 1:813f4b17ae65 13
mazdo25 1:813f4b17ae65 14
mazdo25 1:813f4b17ae65 15 public:
mazdo25 1:813f4b17ae65 16 P(float G)
mazdo25 1:813f4b17ae65 17 {
mazdo25 1:813f4b17ae65 18 gain = G;
mazdo25 1:813f4b17ae65 19 inMin = 0.0f;
mazdo25 1:813f4b17ae65 20 inMax = 3.3f;
mazdo25 1:813f4b17ae65 21 outMin = 0.0f;
mazdo25 1:813f4b17ae65 22 outMax = 1.0f;
mazdo25 1:813f4b17ae65 23 control = 0;
mazdo25 1:813f4b17ae65 24 }
mazdo25 1:813f4b17ae65 25
mazdo25 1:813f4b17ae65 26 void setInputLimits(float inMin_, float inMax_)
mazdo25 1:813f4b17ae65 27 {
mazdo25 1:813f4b17ae65 28 if (inMin_ > inMax_) {return;} //cant be true can it
mazdo25 1:813f4b17ae65 29 inMin = inMin_;
mazdo25 1:813f4b17ae65 30 inMax = inMax_;
mazdo25 1:813f4b17ae65 31 }
mazdo25 1:813f4b17ae65 32
mazdo25 1:813f4b17ae65 33 void setOutputLimits(float outMin_, float outMax_)
mazdo25 1:813f4b17ae65 34 {
mazdo25 1:813f4b17ae65 35 if (outMin_ > outMax_) {return;}
mazdo25 1:813f4b17ae65 36 outMin = outMin_;
mazdo25 1:813f4b17ae65 37 outMax = outMax_;
mazdo25 1:813f4b17ae65 38 }
mazdo25 1:813f4b17ae65 39
mazdo25 1:813f4b17ae65 40 float compute(float curVal_)
mazdo25 1:813f4b17ae65 41 {
mazdo25 1:813f4b17ae65 42 float temp = ((control-curVal_)*gain)+curVal_; //amplify difference by gain and add to current value
mazdo25 3:01b5e80d842d 43 temp = (((temp-inMin)/(inMax - inMin))*(outMax-outMin))+outMin; //scales temp to the correct output Limits
mazdo25 3:01b5e80d842d 44 if (temp > 1.0f ) {temp = 1.0f;}
mazdo25 3:01b5e80d842d 45 if (temp < -1.0f) {temp = -1.0f;}
mazdo25 1:813f4b17ae65 46 return temp; //return the scaled value
mazdo25 1:813f4b17ae65 47 }
mazdo25 1:813f4b17ae65 48
mazdo25 1:813f4b17ae65 49 void setControl(float wantedVal_)
mazdo25 1:813f4b17ae65 50 {
mazdo25 1:813f4b17ae65 51 if (wantedVal_ > inMax) {control = inMax;}
mazdo25 1:813f4b17ae65 52 else if (wantedVal_ <inMin) {control = inMin;}
mazdo25 1:813f4b17ae65 53 else {control = wantedVal_;}
mazdo25 1:813f4b17ae65 54 }
mazdo25 1:813f4b17ae65 55
mazdo25 1:813f4b17ae65 56 float returnControl(void)
mazdo25 1:813f4b17ae65 57 {
mazdo25 1:813f4b17ae65 58 return control;
mazdo25 1:813f4b17ae65 59 }
mazdo25 1:813f4b17ae65 60
mazdo25 1:813f4b17ae65 61 };