動作確認済み
Revision 2:858781a5bbd1, committed 2016-07-03
- Comitter:
- inst
- Date:
- Sun Jul 03 01:20:22 2016 +0000
- Parent:
- 1:9d066dbe1893
- Commit message:
- set?duty???????????
Changed in this revision
GMD.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 9d066dbe1893 -r 858781a5bbd1 GMD.cpp --- a/GMD.cpp Sat Jul 02 06:22:45 2016 +0000 +++ b/GMD.cpp Sun Jul 03 01:20:22 2016 +0000 @@ -18,11 +18,19 @@ _pwm[1]->period_ticks(_frequency_to_tick_coeff / f_kHz); } +float sign(float n) { + if (n < 0.0f) { + return -1.0f; + } + return 1.0f; +} + float GMD::set(float p) { - p = std::max(0.0f, std::min(p, 1.0f)); + p = std::max(-1.0f, std::min(p, 1.0f)); + p = (abs(p) * (_duty_upper_limit - _duty_lower_limit) + _duty_lower_limit) * sign(p); if (p < 0.0f) { - _pwm[0]->write(p); + _pwm[0]->write(-p); _pwm[1]->write(0.0f); } else { _pwm[0]->write(0.0f);