QEI PID Motor 合体
Dependents: Nucleo_Motor Nucleo_Motor
fusion_Motor.h
- Committer:
- kikoaac
- Date:
- 2015-09-23
- Revision:
- 0:0d2b4508badd
File content as of revision 0:0d2b4508badd:
#include "mbed.h" #include "Motor.h" #include "PID.h" #include "QEI.h" #ifndef fusion_Motor_H #define fusion_Motor_H class fusion_Motor : public QEI ,public PID ,public Motor { Ticker inter; protected: fusion_Motor& operator=(const fusion_Motor &q) { return *this; } public: fusion_Motor( QEI &p, PID &q,Motor &m) ; float interval; typedef enum Mode { Normal, Servo, Speed } Mode; float getrpm() { return RPM; } /*fusion_Motor() : PID(),QEI(),Motor() { printf("defoult con\r\n"); }*/ void setup(Mode _mode); void setmode(Mode _mode){mode=_mode;} void motor_run(float actionNum); fusion_Motor& operator() (Mode _mode,bool f) { flag=f; setmode(_mode); pid_reset(); return *this; } fusion_Motor& operator= (float actnum) { motor_run(actnum); return *this; } void start(float target); void start(); void write(float tar); void maxrpm(float rpm){Maxrpm = rpm;} void minrpm(float rpm){Minrpm = rpm;} float rpmper(float rpm); float rerpmper(float rpm); void Nomalrun(float duty){Motor::operator=(duty);} void Servorun(float angle){dTarget = angle;} void Speedrun(float rpm){dTarget = rpm;} private: float RPM; bool flag; void InterruptAction(); Mode mode; float Max,Min; float Maxrpm; float Minrpm; }; #endif