tianyun ma / Mbed 2 deprecated omni

Dependencies:   QEI mbed

Committer:
himarsmty
Date:
Mon May 07 06:58:54 2018 +0000
Revision:
0:5d1c1999d61d
s

Who changed what in which revision?

UserRevisionLine numberNew contents of line
himarsmty 0:5d1c1999d61d 1 #include "Motor_3.h"
himarsmty 0:5d1c1999d61d 2 #include "mbed.h"
himarsmty 0:5d1c1999d61d 3 #define HIGH 1
himarsmty 0:5d1c1999d61d 4 #define LOW 0
himarsmty 0:5d1c1999d61d 5
himarsmty 0:5d1c1999d61d 6 extern Serial pc;
himarsmty 0:5d1c1999d61d 7 Motor_3::Motor_3(PinName dia1,PinName dia2,PinName pwa):
himarsmty 0:5d1c1999d61d 8 _dia1(dia1),_dia2(dia2),_pwa(pwa),_pwmout(0)
himarsmty 0:5d1c1999d61d 9 {
himarsmty 0:5d1c1999d61d 10 //init
himarsmty 0:5d1c1999d61d 11 DigitalOut pda1(_dia1,LOW);
himarsmty 0:5d1c1999d61d 12 DigitalOut pda2(_dia2,LOW);
himarsmty 0:5d1c1999d61d 13 }
himarsmty 0:5d1c1999d61d 14
himarsmty 0:5d1c1999d61d 15 void Motor_3::mv(double speed)
himarsmty 0:5d1c1999d61d 16 {
himarsmty 0:5d1c1999d61d 17 // speed=speed/100*20/1000;
himarsmty 0:5d1c1999d61d 18 // pc.printf("speed=%lf\n",speed);
himarsmty 0:5d1c1999d61d 19
himarsmty 0:5d1c1999d61d 20 if(speed>0)
himarsmty 0:5d1c1999d61d 21 {
himarsmty 0:5d1c1999d61d 22 double temp_pwmout=6*pow(10.0,-10.0)*pow(speed,4.0)-4*pow(10.0,-7.0)*pow(speed,3.0)+3*pow(10.0,-5.0)*pow(speed,2.0)+0.0241*speed+0.0794;//拟合
himarsmty 0:5d1c1999d61d 23 // pc.printf("&&&temp_pwmout:%lf\n",temp_pwmout);
himarsmty 0:5d1c1999d61d 24 int pwmout=(int)temp_pwmout;
himarsmty 0:5d1c1999d61d 25 DigitalOut mydia1(_dia1,HIGH);
himarsmty 0:5d1c1999d61d 26 DigitalOut mydia2(_dia2,LOW);
himarsmty 0:5d1c1999d61d 27 // _pwmout=pwmout;
himarsmty 0:5d1c1999d61d 28 _pwmout=20;
himarsmty 0:5d1c1999d61d 29 PwmOut mypwa(_pwa);
himarsmty 0:5d1c1999d61d 30 mypwa.period_ms(20);
himarsmty 0:5d1c1999d61d 31 mypwa.pulsewidth_ms(_pwmout);
himarsmty 0:5d1c1999d61d 32 }
himarsmty 0:5d1c1999d61d 33 else if (speed<0)
himarsmty 0:5d1c1999d61d 34 {
himarsmty 0:5d1c1999d61d 35
himarsmty 0:5d1c1999d61d 36 double temp_pwmout=6*pow(10.0,-10.0)*pow(speed,4.0)-4*pow(10.0,-7.0)*pow(speed,3.0)+3*pow(10.0,-5.0)*pow(speed,2.0)+0.0241*speed+0.0794;//拟合
himarsmty 0:5d1c1999d61d 37 // pc.printf("temp_pwmout:%lf\n",temp_pwmout);
himarsmty 0:5d1c1999d61d 38 int pwmout=(int)temp_pwmout;
himarsmty 0:5d1c1999d61d 39 speed=abs(speed);
himarsmty 0:5d1c1999d61d 40 DigitalOut mydia1(_dia1,LOW);
himarsmty 0:5d1c1999d61d 41 DigitalOut mydia2(_dia2,HIGH);
himarsmty 0:5d1c1999d61d 42 // _pwmout=pwmout;
himarsmty 0:5d1c1999d61d 43 _pwmout=10;
himarsmty 0:5d1c1999d61d 44 pc.printf("%d\n",_pwmout);
himarsmty 0:5d1c1999d61d 45 PwmOut mypwa(_pwa);
himarsmty 0:5d1c1999d61d 46 mypwa.period_ms(20);
himarsmty 0:5d1c1999d61d 47 mypwa.pulsewidth_ms(_pwmout);
himarsmty 0:5d1c1999d61d 48 }
himarsmty 0:5d1c1999d61d 49 else
himarsmty 0:5d1c1999d61d 50 {
himarsmty 0:5d1c1999d61d 51 speed=abs(speed);
himarsmty 0:5d1c1999d61d 52 DigitalOut mydia1(_dia1,LOW);
himarsmty 0:5d1c1999d61d 53 DigitalOut mydia2(_dia2,LOW);
himarsmty 0:5d1c1999d61d 54 _pwmout=0.0;
himarsmty 0:5d1c1999d61d 55 PwmOut mypwa(_pwa);
himarsmty 0:5d1c1999d61d 56 mypwa.period_ms(20);
himarsmty 0:5d1c1999d61d 57 mypwa.pulsewidth(_pwmout);
himarsmty 0:5d1c1999d61d 58 }
himarsmty 0:5d1c1999d61d 59
himarsmty 0:5d1c1999d61d 60 }