2017 hongo b team

Dependents:   CtrlMD 2017_Bteam_alpha_slave

Committer:
Komazawa_sun
Date:
Fri Sep 08 03:31:04 2017 +0000
Revision:
0:be058264e889
????;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Komazawa_sun 0:be058264e889 1 #include "TS120.h"
Komazawa_sun 0:be058264e889 2
Komazawa_sun 0:be058264e889 3 TS120::TS120(PinName pwm_pin, bool _dir_flip, double _flont_range, double _back_range)
Komazawa_sun 0:be058264e889 4 : pwm_out(pwm_pin)
Komazawa_sun 0:be058264e889 5 {
Komazawa_sun 0:be058264e889 6 dir_flip = _dir_flip;
Komazawa_sun 0:be058264e889 7 flont_range = _flont_range;
Komazawa_sun 0:be058264e889 8 back_range = _back_range;
Komazawa_sun 0:be058264e889 9
Komazawa_sun 0:be058264e889 10 drive(0);
Komazawa_sun 0:be058264e889 11 wait_ms(100);
Komazawa_sun 0:be058264e889 12 }
Komazawa_sun 0:be058264e889 13
Komazawa_sun 0:be058264e889 14 void TS120::drive(double _pwm)
Komazawa_sun 0:be058264e889 15 {
Komazawa_sun 0:be058264e889 16 double pwm = _pwm;
Komazawa_sun 0:be058264e889 17
Komazawa_sun 0:be058264e889 18 if(dir_flip == true)
Komazawa_sun 0:be058264e889 19 pwm *= -1;
Komazawa_sun 0:be058264e889 20
Komazawa_sun 0:be058264e889 21 if(_pwm > 0.0)
Komazawa_sun 0:be058264e889 22 pwm *= flont_range;
Komazawa_sun 0:be058264e889 23 else
Komazawa_sun 0:be058264e889 24 pwm *= back_range;
Komazawa_sun 0:be058264e889 25
Komazawa_sun 0:be058264e889 26 int pwm_us = (int)((pwm_max - pwm_min) / 2) * (pwm + 1) + pwm_min;
Komazawa_sun 0:be058264e889 27
Komazawa_sun 0:be058264e889 28 pwm_out.pulsewidth_us(pwm_us);
Komazawa_sun 0:be058264e889 29 }
Komazawa_sun 0:be058264e889 30
Komazawa_sun 0:be058264e889 31 void TS120::drive(signed int _pwm, unsigned int max_pwm_abs)
Komazawa_sun 0:be058264e889 32 {
Komazawa_sun 0:be058264e889 33
Komazawa_sun 0:be058264e889 34 double pwm = (double)((1 / max_pwm_abs) * _pwm);
Komazawa_sun 0:be058264e889 35
Komazawa_sun 0:be058264e889 36 if(dir_flip == true)
Komazawa_sun 0:be058264e889 37 pwm *= -1;
Komazawa_sun 0:be058264e889 38
Komazawa_sun 0:be058264e889 39 if(pwm > 0.0)
Komazawa_sun 0:be058264e889 40 pwm *= flont_range;
Komazawa_sun 0:be058264e889 41 else
Komazawa_sun 0:be058264e889 42 pwm *= back_range;
Komazawa_sun 0:be058264e889 43
Komazawa_sun 0:be058264e889 44 int pwm_us = (int)((pwm_max - pwm_min) / 2) * (pwm + 1) + pwm_min;
Komazawa_sun 0:be058264e889 45
Komazawa_sun 0:be058264e889 46 pwm_out.pulsewidth_us(pwm_us);
Komazawa_sun 0:be058264e889 47 }