Joseph Bradshaw / MotCon

Dependents:   mbed_ES410_simpleSpeedMeasurement mbed_ES20X_V21_Tester

Committer:
jebradshaw
Date:
Mon May 23 19:00:42 2016 +0000
Revision:
1:382121501487
Parent:
0:3ba12980833b
Child:
4:23cd902e1774
Child:
5:3e07f69d8abd
ES410 Simple Speed Measurement program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jebradshaw 0:3ba12980833b 1 #include "MotCon.h"
jebradshaw 0:3ba12980833b 2
jebradshaw 0:3ba12980833b 3 //Constructor
jebradshaw 0:3ba12980833b 4 MotCon::MotCon(PinName pwm, PinName dir) : _pwm(pwm), _dir(dir) {
jebradshaw 0:3ba12980833b 5 _pwm.period_us(50);
jebradshaw 0:3ba12980833b 6 _pwm = 0.0;
jebradshaw 0:3ba12980833b 7 _dir = 0;
jebradshaw 0:3ba12980833b 8 }
jebradshaw 0:3ba12980833b 9
jebradshaw 0:3ba12980833b 10 // dc is signed duty cycle (+/-1.0)
jebradshaw 0:3ba12980833b 11 void MotCon::mot_control(float dc){
jebradshaw 0:3ba12980833b 12 if(dc>1.0)
jebradshaw 0:3ba12980833b 13 dc=1.0;
jebradshaw 0:3ba12980833b 14 if(dc<-1.0)
jebradshaw 0:3ba12980833b 15 dc=-1.0;
jebradshaw 0:3ba12980833b 16
jebradshaw 0:3ba12980833b 17 if(dc > 0.001){
jebradshaw 0:3ba12980833b 18 _dir = 0;
jebradshaw 0:3ba12980833b 19 _pwm = dc;
jebradshaw 0:3ba12980833b 20 }
jebradshaw 0:3ba12980833b 21 else if(dc < -0.001){
jebradshaw 0:3ba12980833b 22 _dir = 1;
jebradshaw 0:3ba12980833b 23 _pwm = abs(dc);
jebradshaw 0:3ba12980833b 24 }
jebradshaw 0:3ba12980833b 25 else{
jebradshaw 0:3ba12980833b 26 _dir = 0;
jebradshaw 0:3ba12980833b 27 _pwm = 0.0;
jebradshaw 0:3ba12980833b 28 }
jebradshaw 0:3ba12980833b 29 }
jebradshaw 1:382121501487 30
jebradshaw 1:382121501487 31 // dc is signed duty cycle (+/-1.0)
jebradshaw 1:382121501487 32 void MotCon::mot_control(float dc, int invert){
jebradshaw 1:382121501487 33 if(dc>1.0)
jebradshaw 1:382121501487 34 dc=1.0;
jebradshaw 1:382121501487 35 if(dc<-1.0)
jebradshaw 1:382121501487 36 dc=-1.0;
jebradshaw 1:382121501487 37
jebradshaw 1:382121501487 38 if(invert==0){
jebradshaw 1:382121501487 39 if(dc > 0.001){
jebradshaw 1:382121501487 40 _dir = 0;
jebradshaw 1:382121501487 41 _pwm = dc;
jebradshaw 1:382121501487 42 }
jebradshaw 1:382121501487 43 else if(dc < -0.001){
jebradshaw 1:382121501487 44 _dir = 1;
jebradshaw 1:382121501487 45 _pwm = abs(dc);
jebradshaw 1:382121501487 46 }
jebradshaw 1:382121501487 47 else{
jebradshaw 1:382121501487 48 _dir = 0;
jebradshaw 1:382121501487 49 _pwm = 0.0;
jebradshaw 1:382121501487 50 }
jebradshaw 1:382121501487 51 }
jebradshaw 1:382121501487 52 else{
jebradshaw 1:382121501487 53 if(dc > 0.001){
jebradshaw 1:382121501487 54 _dir = 1;
jebradshaw 1:382121501487 55 _pwm = dc;
jebradshaw 1:382121501487 56 }
jebradshaw 1:382121501487 57 else if(dc < -0.001){
jebradshaw 1:382121501487 58 _dir = 0;
jebradshaw 1:382121501487 59 _pwm = abs(dc);
jebradshaw 1:382121501487 60 }
jebradshaw 1:382121501487 61 else{
jebradshaw 1:382121501487 62 _dir = 0;
jebradshaw 1:382121501487 63 _pwm = 0.0;
jebradshaw 1:382121501487 64 }
jebradshaw 1:382121501487 65 }
jebradshaw 1:382121501487 66 }