Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
CtrlMD.cpp@0:0f4170f7118a, 2017-09-08 (annotated)
- Committer:
- Komazawa_sun
- Date:
- Fri Sep 08 03:31:18 2017 +0000
- Revision:
- 0:0f4170f7118a
????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Komazawa_sun | 0:0f4170f7118a | 1 | #include "CtrlMD.h" |
Komazawa_sun | 0:0f4170f7118a | 2 | |
Komazawa_sun | 0:0f4170f7118a | 3 | CtrlMD::CtrlMD(MotorDriver *_MD, double _inval, double _err) |
Komazawa_sun | 0:0f4170f7118a | 4 | : inval(_inval), err(_err), current_pwm(0.0) |
Komazawa_sun | 0:0f4170f7118a | 5 | { |
Komazawa_sun | 0:0f4170f7118a | 6 | MD = _MD; |
Komazawa_sun | 0:0f4170f7118a | 7 | driving_interval.attach(this, &CtrlMD::driving, inval); |
Komazawa_sun | 0:0f4170f7118a | 8 | } |
Komazawa_sun | 0:0f4170f7118a | 9 | |
Komazawa_sun | 0:0f4170f7118a | 10 | void CtrlMD::reform_inval(double _inval) |
Komazawa_sun | 0:0f4170f7118a | 11 | { |
Komazawa_sun | 0:0f4170f7118a | 12 | inval = _inval; |
Komazawa_sun | 0:0f4170f7118a | 13 | } |
Komazawa_sun | 0:0f4170f7118a | 14 | |
Komazawa_sun | 0:0f4170f7118a | 15 | void CtrlMD::drive(double _pwm) |
Komazawa_sun | 0:0f4170f7118a | 16 | { |
Komazawa_sun | 0:0f4170f7118a | 17 | target_pwm = _pwm; |
Komazawa_sun | 0:0f4170f7118a | 18 | //printf("%f,",current_pwm); |
Komazawa_sun | 0:0f4170f7118a | 19 | } |
Komazawa_sun | 0:0f4170f7118a | 20 | |
Komazawa_sun | 0:0f4170f7118a | 21 | |
Komazawa_sun | 0:0f4170f7118a | 22 | |
Komazawa_sun | 0:0f4170f7118a | 23 | void CtrlMD::driving(){ |
Komazawa_sun | 0:0f4170f7118a | 24 | if(fabs(target_pwm - current_pwm) > err){ |
Komazawa_sun | 0:0f4170f7118a | 25 | if(target_pwm < current_pwm){ |
Komazawa_sun | 0:0f4170f7118a | 26 | current_pwm -= err; |
Komazawa_sun | 0:0f4170f7118a | 27 | } else { |
Komazawa_sun | 0:0f4170f7118a | 28 | current_pwm += err; |
Komazawa_sun | 0:0f4170f7118a | 29 | } |
Komazawa_sun | 0:0f4170f7118a | 30 | } |
Komazawa_sun | 0:0f4170f7118a | 31 | MD->drive(current_pwm); |
Komazawa_sun | 0:0f4170f7118a | 32 | driving_interval.attach(this, &CtrlMD::driving, inval); |
Komazawa_sun | 0:0f4170f7118a | 33 | } |