動作確認済み

Dependents:   NewMD2 NewMD3

Revision:
10:2fa9eeafd727
Parent:
9:0d8dbe2671cd
--- 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);