1

Dependencies:   mbed-dev-f303 FastPWM3

Committer:
shaorui
Date:
Wed May 12 12:41:39 2021 +0000
Revision:
55:489f01927025
Parent:
52:d4d5e3414865
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shaorui 48:1b51771c3647 1 #ifndef MA700SENSOR_H
shaorui 48:1b51771c3647 2 #define MA700SENSOR_H
shaorui 48:1b51771c3647 3 #include "structs.h"
shaorui 48:1b51771c3647 4 class PositionSensor1 {
shaorui 48:1b51771c3647 5 public:
shaorui 48:1b51771c3647 6 virtual void Sample(float dt) = 0;
shaorui 48:1b51771c3647 7 virtual float GetMechPosition() {return 0.0f;}
shaorui 48:1b51771c3647 8 virtual float GetMechPositionFixed() {return 0.0f;}
shaorui 48:1b51771c3647 9 virtual float GetElecPosition() {return 0.0f;}
shaorui 48:1b51771c3647 10 virtual float GetMechVelocity() {return 0.0f;}
shaorui 48:1b51771c3647 11 virtual float GetElecVelocity() {return 0.0f;}
shaorui 48:1b51771c3647 12 virtual void ZeroPosition(void) = 0;
shaorui 48:1b51771c3647 13 virtual int GetRawPosition(void) = 0;
shaorui 48:1b51771c3647 14 virtual void SetElecOffset(float offset) = 0;
shaorui 48:1b51771c3647 15 virtual int GetCPR(void) = 0;
shaorui 48:1b51771c3647 16 virtual void WriteLUT(int new_lut[128]) = 0;
shaorui 48:1b51771c3647 17 virtual int Gettest() {return 0;}
shaorui 48:1b51771c3647 18 virtual int Gettest1() {return 0;}
shaorui 48:1b51771c3647 19 virtual int Gettest2() {return 0;}
shaorui 48:1b51771c3647 20 virtual void ReadLUT(void)=0;
shaorui 48:1b51771c3647 21 //virtual void WriteRegister( ControllerStruct * controller)=0;
shaorui 48:1b51771c3647 22 };
shaorui 48:1b51771c3647 23
shaorui 48:1b51771c3647 24 /*
shaorui 48:1b51771c3647 25 class PositionSensorEncoder: public PositionSensor {
shaorui 48:1b51771c3647 26 public:
shaorui 48:1b51771c3647 27 PositionSensorEncoder(int CPR, float offset, int ppairs);
shaorui 48:1b51771c3647 28 virtual void Sample(float dt);
shaorui 48:1b51771c3647 29 virtual float GetMechPosition();
shaorui 48:1b51771c3647 30 virtual float GetElecPosition();
shaorui 48:1b51771c3647 31 virtual float GetMechVelocity();
shaorui 48:1b51771c3647 32 virtual float GetElecVelocity();
shaorui 48:1b51771c3647 33 virtual void ZeroPosition(void);
shaorui 48:1b51771c3647 34 virtual void SetElecOffset(float offset);
shaorui 48:1b51771c3647 35 virtual int GetRawPosition(void);
shaorui 48:1b51771c3647 36 virtual int GetCPR(void);
shaorui 48:1b51771c3647 37 virtual void WriteLUT(int new_lut[128]);
shaorui 48:1b51771c3647 38 private:
shaorui 48:1b51771c3647 39 InterruptIn *ZPulse;
shaorui 48:1b51771c3647 40 DigitalIn *ZSense;
shaorui 48:1b51771c3647 41 //DigitalOut *ZTest;
shaorui 48:1b51771c3647 42 virtual void ZeroEncoderCount(void);
shaorui 48:1b51771c3647 43 virtual void ZeroEncoderCountDown(void);
shaorui 48:1b51771c3647 44 int _CPR, flag, rotations, _ppairs, raw;
shaorui 48:1b51771c3647 45 //int state;
shaorui 48:1b51771c3647 46 float _offset, MechPosition, MechOffset, dir, test_pos, oldVel, out_old, velVec[40];
shaorui 48:1b51771c3647 47 int offset_lut[128];
shaorui 48:1b51771c3647 48 };
shaorui 48:1b51771c3647 49 */
shaorui 48:1b51771c3647 50
shaorui 48:1b51771c3647 51 class PositionSensorMA700: public PositionSensor1{
shaorui 48:1b51771c3647 52 public:
shaorui 48:1b51771c3647 53 PositionSensorMA700(int CPR, float offset, int ppairs);
shaorui 48:1b51771c3647 54 virtual void Sample(float dt);
shaorui 48:1b51771c3647 55 virtual float GetMechPosition();
shaorui 48:1b51771c3647 56 virtual float GetMechPositionFixed();
shaorui 48:1b51771c3647 57 virtual float GetElecPosition();
shaorui 48:1b51771c3647 58 virtual float GetMechVelocity();
shaorui 48:1b51771c3647 59 virtual float GetElecVelocity();
shaorui 48:1b51771c3647 60 virtual int GetRawPosition();
shaorui 48:1b51771c3647 61 virtual void ZeroPosition();
shaorui 48:1b51771c3647 62 virtual void SetElecOffset(float offset);
shaorui 48:1b51771c3647 63 virtual void SetMechOffset(float offset);
shaorui 48:1b51771c3647 64 virtual int GetCPR(void);
shaorui 48:1b51771c3647 65 virtual void WriteLUT(int new_lut[128]);
shaorui 48:1b51771c3647 66 virtual int Gettest();
shaorui 48:1b51771c3647 67 virtual int Gettest1();
shaorui 48:1b51771c3647 68 virtual int Gettest2();
shaorui 48:1b51771c3647 69 virtual void WriteRegister( ControllerStruct * controller);
shaorui 48:1b51771c3647 70 virtual void ReadLUT(void);
shaorui 48:1b51771c3647 71 private:
shaorui 48:1b51771c3647 72 float position, ElecPosition,JointOffset , ElecOffset, MechPosition, MechOffset, modPosition, oldModPosition, oldVel, velVec[40], MechVelocity, ElecVelocity, ElecVelocityFilt;
Rushu 52:d4d5e3414865 73 int raw, _CPR, rotations, old_counts, _ppairs, first_sample;
shaorui 48:1b51771c3647 74 SPI *spi;
shaorui 48:1b51771c3647 75 DigitalOut *cs;
shaorui 48:1b51771c3647 76 int readAngleCmd;
shaorui 48:1b51771c3647 77 int BCT;
shaorui 48:1b51771c3647 78 int ETXY;
shaorui 48:1b51771c3647 79 int BCTREAD;
shaorui 48:1b51771c3647 80 int ETXYREAD;
shaorui 48:1b51771c3647 81 int _test;
shaorui 48:1b51771c3647 82 int _test1;
shaorui 48:1b51771c3647 83 int _test2;
shaorui 48:1b51771c3647 84 int offset_lut[128];
shaorui 48:1b51771c3647 85
shaorui 48:1b51771c3647 86 };
shaorui 48:1b51771c3647 87
shaorui 48:1b51771c3647 88 #endif