Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-dev-f303 FastPWM3
Dependents: GT_MOTOR_24NM_V03 GT_MOTOR_24NM_V03_PT1000CalTemp
Diff: PositionSensor/PositionSensor.h
- Revision:
- 22:60276ba87ac6
- Parent:
- 20:bf9ea5125d52
- Child:
- 34:51647c6c500d
--- a/PositionSensor/PositionSensor.h Thu Mar 02 15:31:45 2017 +0000
+++ b/PositionSensor/PositionSensor.h Fri Mar 31 18:24:46 2017 +0000
@@ -2,75 +2,64 @@
#define POSITIONSENSOR_H
class PositionSensor {
public:
+ virtual void Sample(void) = 0;
virtual float GetMechPosition() {return 0.0f;}
virtual float GetElecPosition() {return 0.0f;}
virtual float GetMechVelocity() {return 0.0f;}
virtual float GetElecVelocity() {return 0.0f;}
+ virtual void ZeroPosition(void) = 0;
+ virtual int GetRawPosition(void) = 0;
+ virtual void SetElecOffset(float offset) = 0;
+ virtual int GetCPR(void) = 0;
+ virtual void WriteLUT(int new_lut[128]) = 0;
};
class PositionSensorEncoder: public PositionSensor {
public:
PositionSensorEncoder(int CPR, float offset, int ppairs);
+ virtual void Sample();
virtual float GetMechPosition();
virtual float GetElecPosition();
virtual float GetMechVelocity();
virtual float GetElecVelocity();
+ virtual void ZeroPosition(void);
+ virtual void SetElecOffset(float offset);
+ virtual int GetRawPosition(void);
+ virtual int GetCPR(void);
+ virtual void WriteLUT(int new_lut[128]);
private:
InterruptIn *ZPulse;
DigitalIn *ZSense;
//DigitalOut *ZTest;
virtual void ZeroEncoderCount(void);
virtual void ZeroEncoderCountDown(void);
- int _CPR, flag, rotations, _ppairs;
+ int _CPR, flag, rotations, _ppairs, raw;
//int state;
- float _offset, MechPosition, dir, test_pos, vel_old, out_old;
-};
-
-class PositionSensorMA700: public PositionSensor{
-public:
- PositionSensorMA700(int CPR, float offset, int ppairs);
- virtual float GetMechPosition();
- virtual float GetElecPosition();
- virtual float GetMechVelocity();
- virtual int GetRawPosition();
- virtual void ZeroPosition();
-private:
- float _offset, MechPosition, MechOffset;
- int _CPR, rotations, old_counts, _ppairs;
- SPI *spi;
- DigitalOut *cs;
+ float _offset, MechPosition, MechOffset, dir, test_pos, oldVel, out_old, velVec[16];
+ int offset_lut[128];
};
class PositionSensorAM5147: public PositionSensor{
public:
PositionSensorAM5147(int CPR, float offset, int ppairs);
+ virtual void Sample();
virtual float GetMechPosition();
virtual float GetElecPosition();
virtual float GetMechVelocity();
virtual int GetRawPosition();
virtual void ZeroPosition();
+ virtual void SetElecOffset(float offset);
+ virtual int GetCPR(void);
+ virtual void WriteLUT(int new_lut[128]);
private:
- float _offset, MechPosition, MechOffset;
- int _CPR, rotations, old_counts, _ppairs;
+ float position, ElecPosition, ElecOffset, MechPosition, MechOffset, modPosition, oldModPosition, oldVel, velVec[16], MechVelocity, ElecVelocity;
+ int raw, _CPR, rotations, old_counts, _ppairs;
SPI *spi;
DigitalOut *cs;
int readAngleCmd;
+ int offset_lut[128];
};
-class PositionSensorSineGen: public PositionSensor{
-public:
- PositionSensorSineGen(int CPR, float offset, int ppairs);
- virtual float GetMechPosition();
- virtual float GetElecPosition();
- virtual float GetMechVelocity();
- virtual int GetRawPosition();
- virtual void ZeroPosition();
-private:
- float _offset, MechPosition, MechOffset;
- int _CPR, rotations, old_counts, _ppairs;
- int readAngleCmd;
-
-};
#endif
\ No newline at end of file