動作確認済み

Files at this revision

API Documentation at this revision

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);