動作確認済み

Revision:
2:858781a5bbd1
Parent:
1:9d066dbe1893
--- 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);