Simple motor controller library, using DIR, PWM, nSLP pin like pololu.

Revision:
0:e3207dd7809a
Child:
1:ed3dfe4ecc8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MotorControler.cpp	Wed Mar 04 03:53:06 2020 +0000
@@ -0,0 +1,39 @@
+#include "MotorControler.h"
+
+MotorControler::MotorControler(PinName DIR, PinName PWM, PinName SLP) : _DIR(DIR), _PWM(PWM), _nSLP(SLP)
+{
+    _nSLP = 0;
+}
+
+void MotorControler::enableDriver()
+{
+    _nSLP = 1;
+}
+
+void MotorControler::disableDriver()
+{
+    _nSLP = 0;
+}
+
+void MotorControler::setSpeed(float speed)
+{
+    uint8_t reverse = 0;
+    if (speed < 0)
+    {
+        speed = -speed;  // Make speed a positive quantity
+        reverse = 1;  // Preserve the direction
+    }
+    // 最大デューティ比で制限
+    if (speed > 1)
+        speed = 1;
+        
+    _PWM = speed;
+    if (reverse ^ FLIP_MOTOR_DIR)
+    {
+        _DIR = 1;
+    }
+    else
+    {
+        _DIR = 0;
+    }
+}
\ No newline at end of file