bldc driver firmware based on hobbyking cheetah compact

Dependencies:   BLDC_V2 mbed-dev-f303 FastPWM3

Dependents:   BLDC_V2

Revision:
47:f4ecf3e0576a
Parent:
45:aadebe074af6
Child:
48:a74e401a6d84
--- a/PositionSensor/PositionSensor.h	Mon Jul 30 20:33:23 2018 +0000
+++ b/PositionSensor/PositionSensor.h	Wed May 13 09:53:27 2020 +0000
@@ -16,30 +16,30 @@
 };
   
   
-class PositionSensorEncoder: public PositionSensor {
-public:
-    PositionSensorEncoder(int CPR, float offset, int ppairs);
-    virtual void Sample(float dt);
-    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, raw;
-    //int state;
-    float _offset, MechPosition, MechOffset, dir, test_pos, oldVel, out_old, velVec[40];
-    int offset_lut[128];
-};
+//class PositionSensorEncoder: public PositionSensor {
+//public:
+//    PositionSensorEncoder(int CPR, float offset, int ppairs);
+//    virtual void Sample(float dt);
+//    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, raw;
+//    //int state;
+//    float _offset, MechPosition, MechOffset, dir, test_pos, oldVel, out_old, velVec[40];
+//    int offset_lut[128];
+//};
 
 class PositionSensorAM5147: public PositionSensor{
 public:
@@ -59,6 +59,7 @@
 private:
     float position, ElecPosition, ElecOffset, MechPosition, MechOffset, modPosition, oldModPosition, oldVel, velVec[40], MechVelocity, ElecVelocity, ElecVelocityFilt;
     int raw, _CPR, rotations, old_counts, _ppairs;
+    bool flag_first_time;   // avoid the first time angle - old_counts
     SPI *spi;
     DigitalOut *cs;
     int readAngleCmd;