Simple Interface for Toshiba's TB6612FNG H-Bridge Motor Driver

Revision:
0:30d6828516f5
Child:
1:3dd9137a5cec
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TB6612FNG.cpp	Mon Mar 04 21:58:45 2013 +0000
@@ -0,0 +1,57 @@
+/**
+ * H-Bridge / Motor Driver TB6612FNG Control Library
+ */
+
+
+#include "TB6612FNG.h"
+
+
+TB6612FNG::TB6612FNG(PinName pwm, PinName ctrl1, PinName ctrl2)
+    :m_pwm(pwm), m_ctrl1(ctrl1), m_ctrl2(ctrl2), m_dc(0), m_on(false)
+{
+    m_ctrl1 = 0;
+    m_ctrl2 = 0;
+    m_pwm.period_us(1000);
+    m_pwm.pulsewidth_us(0);
+}
+
+void TB6612FNG::setDC(int dc)
+{
+    m_dc=dc;
+    if(m_dc>1000) m_dc=1000;
+    else if(m_dc<-1000) m_dc=-1000;
+
+    if(m_on)on();
+}
+
+void TB6612FNG::on()
+{
+    m_on=true;
+    if(m_dc>0) {
+        m_ctrl1=1;
+        m_ctrl2=0;
+        m_pwm.pulsewidth_us(m_dc);
+    } else if(m_dc<0) {
+        m_ctrl1=0;
+        m_ctrl2=1;
+        m_pwm.pulsewidth_us(-m_dc);
+    } else {
+        m_ctrl1=0;
+        m_ctrl2=0;
+    }
+    
+}
+
+void TB6612FNG::off()
+{
+    m_on=false;
+    m_ctrl1=0;
+    m_ctrl2=0;
+}
+
+void TB6612FNG::brake()
+{
+    m_on=false;
+    m_ctrl1=1;
+    m_ctrl2=1;
+}
\ No newline at end of file