動作確認済み
Diff: GMD_impl.hpp
- Revision:
- 10:2fa9eeafd727
- Parent:
- 9:0d8dbe2671cd
diff -r 0d8dbe2671cd -r 2fa9eeafd727 GMD_impl.hpp --- a/GMD_impl.hpp Thu Aug 25 00:01:01 2016 +0000 +++ b/GMD_impl.hpp Thu Aug 25 04:59:47 2016 +0000 @@ -8,6 +8,9 @@ const uint32_t GMD<MIN, MAX>::_default_frequency_kHz = 20; template <size_t MIN, size_t MAX> +const float GMD<MIN, MAX>::_threshold = 0.02f; + +template <size_t MIN, size_t MAX> GMD<MIN, MAX>::GMD(PinName p0, PinName p1, PinName shut_down) : _shut_down(shut_down, 1) { _pwm[0] = new FastPWM(p0); _pwm[1] = new FastPWM(p1); @@ -33,6 +36,13 @@ template <size_t MIN, size_t MAX> float GMD<MIN, MAX>::set(float p) { + if (abs(p) < _threshold) { + _pwm[0]->write(0.0f); + _pwm[1]->write(0.0f); + _shut_down = 1; + return p; + } + p = std::max(-1.0f, std::min(p, 1.0f)); p = (abs(p) * (MAX - MIN) + MIN) * sign(p);