2017 hongo b team
Dependents: CtrlMD 2017_Bteam_alpha_slave
TS120.cpp@0:be058264e889, 2017-09-08 (annotated)
- Committer:
- Komazawa_sun
- Date:
- Fri Sep 08 03:31:04 2017 +0000
- Revision:
- 0:be058264e889
????;
Who changed what in which revision?
User | Revision | Line number | New 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 | } |