1

Dependencies:   mbed-dev-f303 FastPWM3

Committer:
shaorui
Date:
Thu May 14 10:44:41 2020 +0000
Revision:
56:4f73fa55baa0
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shaorui 56:4f73fa55baa0 1 #ifndef POSITION_TORQUE_SENSOR_H
shaorui 56:4f73fa55baa0 2 #define POSITION_TORQUE_SENSOR_H
shaorui 56:4f73fa55baa0 3 class PositionSensor1 {
shaorui 56:4f73fa55baa0 4 public:
shaorui 56:4f73fa55baa0 5 virtual void Sample(float dt) = 0;
shaorui 56:4f73fa55baa0 6 virtual float GetMechPosition() {return 0.0f;}
shaorui 56:4f73fa55baa0 7 virtual float GetMechPositionFixed() {return 0.0f;}
shaorui 56:4f73fa55baa0 8 virtual float GetElecPosition() {return 0.0f;}
shaorui 56:4f73fa55baa0 9 virtual float GetMechVelocity() {return 0.0f;}
shaorui 56:4f73fa55baa0 10 virtual float GetElecVelocity() {return 0.0f;}
shaorui 56:4f73fa55baa0 11 virtual void ZeroPosition(void) = 0;
shaorui 56:4f73fa55baa0 12 virtual int GetRawPosition(void) = 0;
shaorui 56:4f73fa55baa0 13 virtual void SetElecOffset(float offset) = 0;
shaorui 56:4f73fa55baa0 14 virtual int GetCPR(void) = 0;
shaorui 56:4f73fa55baa0 15 virtual void WriteLUT(int new_lut[128]) = 0;
shaorui 56:4f73fa55baa0 16 };
shaorui 56:4f73fa55baa0 17
shaorui 56:4f73fa55baa0 18
shaorui 56:4f73fa55baa0 19 class SensorEncoder: public PositionSensor1 {
shaorui 56:4f73fa55baa0 20 public:
shaorui 56:4f73fa55baa0 21 SensorEncoder(int CPR, float offset, int ppairs);
shaorui 56:4f73fa55baa0 22 virtual void Sample(float dt);
shaorui 56:4f73fa55baa0 23 virtual float GetMechPosition();
shaorui 56:4f73fa55baa0 24 virtual float GetElecPosition();
shaorui 56:4f73fa55baa0 25 virtual float GetMechVelocity();
shaorui 56:4f73fa55baa0 26 virtual float GetElecVelocity();
shaorui 56:4f73fa55baa0 27 virtual void ZeroPosition(void);
shaorui 56:4f73fa55baa0 28 virtual void SetElecOffset(float offset);
shaorui 56:4f73fa55baa0 29 virtual int GetRawPosition(void);
shaorui 56:4f73fa55baa0 30 virtual int GetCPR(void);
shaorui 56:4f73fa55baa0 31 virtual void WriteLUT(int new_lut[128]);
shaorui 56:4f73fa55baa0 32 private:
shaorui 56:4f73fa55baa0 33 InterruptIn *ZPulse;
shaorui 56:4f73fa55baa0 34 DigitalIn *ZSense;
shaorui 56:4f73fa55baa0 35 //DigitalOut *ZTest;
shaorui 56:4f73fa55baa0 36 virtual void ZeroEncoderCount(void);
shaorui 56:4f73fa55baa0 37 virtual void ZeroEncoderCountDown(void);
shaorui 56:4f73fa55baa0 38 int _CPR, flag, rotations, _ppairs, raw;
shaorui 56:4f73fa55baa0 39 //int state;
shaorui 56:4f73fa55baa0 40 float _offset, MechPosition, MechOffset, dir, test_pos, oldVel, out_old, velVec[40];
shaorui 56:4f73fa55baa0 41 int offset_lut[128];
shaorui 56:4f73fa55baa0 42 };
shaorui 56:4f73fa55baa0 43
shaorui 56:4f73fa55baa0 44 class SensorAM5147: public PositionSensor1{
shaorui 56:4f73fa55baa0 45 public:
shaorui 56:4f73fa55baa0 46 SensorAM5147(int CPR, float offset, int ppairs);
shaorui 56:4f73fa55baa0 47 virtual void Sample(float dt);
shaorui 56:4f73fa55baa0 48 virtual float GetMechPosition();
shaorui 56:4f73fa55baa0 49 virtual float GetMechPositionFixed();
shaorui 56:4f73fa55baa0 50 virtual float GetElecPosition();
shaorui 56:4f73fa55baa0 51 virtual float GetMechVelocity();
shaorui 56:4f73fa55baa0 52 virtual float GetElecVelocity();
shaorui 56:4f73fa55baa0 53 virtual int GetRawPosition();
shaorui 56:4f73fa55baa0 54 virtual void ZeroPosition();
shaorui 56:4f73fa55baa0 55 virtual void SetElecOffset(float offset);
shaorui 56:4f73fa55baa0 56 virtual void SetMechOffset(float offset);
shaorui 56:4f73fa55baa0 57 virtual int GetCPR(void);
shaorui 56:4f73fa55baa0 58 virtual void WriteLUT(int new_lut[128]);
shaorui 56:4f73fa55baa0 59 private:
shaorui 56:4f73fa55baa0 60 float position, ElecPosition, ElecOffset, MechPosition, MechOffset, modPosition, oldModPosition, oldVel, velVec[40], MechVelocity, ElecVelocity, ElecVelocityFilt;
shaorui 56:4f73fa55baa0 61 int raw, _CPR, rotations, old_counts, _ppairs;
shaorui 56:4f73fa55baa0 62 SPI *spi;
shaorui 56:4f73fa55baa0 63 DigitalOut *cs1,*cs2;
shaorui 56:4f73fa55baa0 64 int readAngleCmd;
shaorui 56:4f73fa55baa0 65 int offset_lut[128];
shaorui 56:4f73fa55baa0 66
shaorui 56:4f73fa55baa0 67 };
shaorui 56:4f73fa55baa0 68
shaorui 56:4f73fa55baa0 69 #endif