Simple motor controller library, using DIR, PWM, nSLP pin like pololu.
Diff: MotorControler.h
- Branch:
- SM_LAP_Switchng
- Revision:
- 6:7955a025adee
- Parent:
- 5:b46d1e179eb7
- Child:
- 7:4454a344006a
diff -r b46d1e179eb7 -r 7955a025adee MotorControler.h --- a/MotorControler.h Tue Feb 02 14:53:38 2021 +0000 +++ b/MotorControler.h Tue Feb 02 15:19:09 2021 +0000 @@ -17,10 +17,15 @@ OTHER = 4, }DriverType; +typedef enum{ + SM = 0, + LAP = 1, +}ControlType; + class MotorControler { public: - MotorControler(PinName DIR, PinName PWM, PinName nSLP, DriverType md_type=POLOLU); + MotorControler(PinName DIR, PinName PWM, PinName nSLP, DriverType md_type=POLOLU, ControlType control_type=SM); float operator = (float speed); float operator + (float speed); float operator += (float speed); @@ -39,17 +44,20 @@ // dir(CW, or CCW) void setMotorDirection(MotorDirection dir); + void setPinUsingSignMagnitude(int8_t dir, float speed); + void setPinusingLockedUntiPhase(int8_t dir, float speed); // set PWM frequency // frequency[Hz] void setPwmFrequency(float frequency); private: - DigitalOut DIR_; + PwmOut DIR_; PwmOut PWM_; DigitalOut nSLP_; uint8_t reverse_direction_; DriverType md_type_; + ControlType control_type_; float current_speed_; };