QEI PID Motor 合体
Dependents: Nucleo_Motor Nucleo_Motor
fusion_Motor.h@0:0d2b4508badd, 2015-09-23 (annotated)
- Committer:
- kikoaac
- Date:
- Wed Sep 23 06:00:24 2015 +0000
- Revision:
- 0:0d2b4508badd
??Class
;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kikoaac | 0:0d2b4508badd | 1 | |
kikoaac | 0:0d2b4508badd | 2 | #include "mbed.h" |
kikoaac | 0:0d2b4508badd | 3 | #include "Motor.h" |
kikoaac | 0:0d2b4508badd | 4 | #include "PID.h" |
kikoaac | 0:0d2b4508badd | 5 | #include "QEI.h" |
kikoaac | 0:0d2b4508badd | 6 | #ifndef fusion_Motor_H |
kikoaac | 0:0d2b4508badd | 7 | #define fusion_Motor_H |
kikoaac | 0:0d2b4508badd | 8 | |
kikoaac | 0:0d2b4508badd | 9 | class fusion_Motor : public QEI ,public PID ,public Motor |
kikoaac | 0:0d2b4508badd | 10 | { |
kikoaac | 0:0d2b4508badd | 11 | |
kikoaac | 0:0d2b4508badd | 12 | Ticker inter; |
kikoaac | 0:0d2b4508badd | 13 | protected: |
kikoaac | 0:0d2b4508badd | 14 | fusion_Motor& operator=(const fusion_Motor &q) { |
kikoaac | 0:0d2b4508badd | 15 | |
kikoaac | 0:0d2b4508badd | 16 | return *this; |
kikoaac | 0:0d2b4508badd | 17 | } |
kikoaac | 0:0d2b4508badd | 18 | public: |
kikoaac | 0:0d2b4508badd | 19 | fusion_Motor( QEI &p, PID &q,Motor &m) ; |
kikoaac | 0:0d2b4508badd | 20 | float interval; |
kikoaac | 0:0d2b4508badd | 21 | typedef enum Mode { |
kikoaac | 0:0d2b4508badd | 22 | Normal, |
kikoaac | 0:0d2b4508badd | 23 | Servo, |
kikoaac | 0:0d2b4508badd | 24 | Speed |
kikoaac | 0:0d2b4508badd | 25 | |
kikoaac | 0:0d2b4508badd | 26 | } Mode; |
kikoaac | 0:0d2b4508badd | 27 | float getrpm() |
kikoaac | 0:0d2b4508badd | 28 | { |
kikoaac | 0:0d2b4508badd | 29 | return RPM; |
kikoaac | 0:0d2b4508badd | 30 | } |
kikoaac | 0:0d2b4508badd | 31 | /*fusion_Motor() : PID(),QEI(),Motor() |
kikoaac | 0:0d2b4508badd | 32 | { |
kikoaac | 0:0d2b4508badd | 33 | printf("defoult con\r\n"); |
kikoaac | 0:0d2b4508badd | 34 | }*/ |
kikoaac | 0:0d2b4508badd | 35 | |
kikoaac | 0:0d2b4508badd | 36 | void setup(Mode _mode); |
kikoaac | 0:0d2b4508badd | 37 | void setmode(Mode _mode){mode=_mode;} |
kikoaac | 0:0d2b4508badd | 38 | void motor_run(float actionNum); |
kikoaac | 0:0d2b4508badd | 39 | fusion_Motor& operator() (Mode _mode,bool f) |
kikoaac | 0:0d2b4508badd | 40 | { |
kikoaac | 0:0d2b4508badd | 41 | |
kikoaac | 0:0d2b4508badd | 42 | flag=f; |
kikoaac | 0:0d2b4508badd | 43 | setmode(_mode); |
kikoaac | 0:0d2b4508badd | 44 | pid_reset(); |
kikoaac | 0:0d2b4508badd | 45 | return *this; |
kikoaac | 0:0d2b4508badd | 46 | } |
kikoaac | 0:0d2b4508badd | 47 | fusion_Motor& operator= (float actnum) |
kikoaac | 0:0d2b4508badd | 48 | { |
kikoaac | 0:0d2b4508badd | 49 | motor_run(actnum); |
kikoaac | 0:0d2b4508badd | 50 | return *this; |
kikoaac | 0:0d2b4508badd | 51 | } |
kikoaac | 0:0d2b4508badd | 52 | void start(float target); |
kikoaac | 0:0d2b4508badd | 53 | void start(); |
kikoaac | 0:0d2b4508badd | 54 | void write(float tar); |
kikoaac | 0:0d2b4508badd | 55 | |
kikoaac | 0:0d2b4508badd | 56 | |
kikoaac | 0:0d2b4508badd | 57 | |
kikoaac | 0:0d2b4508badd | 58 | void maxrpm(float rpm){Maxrpm = rpm;} |
kikoaac | 0:0d2b4508badd | 59 | void minrpm(float rpm){Minrpm = rpm;} |
kikoaac | 0:0d2b4508badd | 60 | float rpmper(float rpm); |
kikoaac | 0:0d2b4508badd | 61 | float rerpmper(float rpm); |
kikoaac | 0:0d2b4508badd | 62 | void Nomalrun(float duty){Motor::operator=(duty);} |
kikoaac | 0:0d2b4508badd | 63 | void Servorun(float angle){dTarget = angle;} |
kikoaac | 0:0d2b4508badd | 64 | void Speedrun(float rpm){dTarget = rpm;} |
kikoaac | 0:0d2b4508badd | 65 | |
kikoaac | 0:0d2b4508badd | 66 | private: |
kikoaac | 0:0d2b4508badd | 67 | float RPM; |
kikoaac | 0:0d2b4508badd | 68 | bool flag; |
kikoaac | 0:0d2b4508badd | 69 | void InterruptAction(); |
kikoaac | 0:0d2b4508badd | 70 | Mode mode; |
kikoaac | 0:0d2b4508badd | 71 | float Max,Min; |
kikoaac | 0:0d2b4508badd | 72 | float Maxrpm; |
kikoaac | 0:0d2b4508badd | 73 | float Minrpm; |
kikoaac | 0:0d2b4508badd | 74 | }; |
kikoaac | 0:0d2b4508badd | 75 | |
kikoaac | 0:0d2b4508badd | 76 | #endif |
kikoaac | 0:0d2b4508badd | 77 |