motor drive libary to use speed control, coasting and dynamic braking. NOTE, dynamic braking my result in large currents. this may or may not set the motor driver on fire/break it/other undesired effects. so read the data sheet folks.

Dependents:   motordrivertestprogram Initialmbedrobotprogram mbedrobot ipod ... more

Revision:
4:5fb1296c0d60
Parent:
3:8822f4955035
Child:
5:3110b9209d3c
--- a/motordriver.cpp	Fri Nov 19 12:33:38 2010 +0000
+++ b/motordriver.cpp	Thu Nov 25 13:31:22 2010 +0000
@@ -59,7 +59,7 @@
             _rev = (speed < 0.0);
             _pwm = 0;
             temp = 0;
-        } else {
+       } else {
             _fwd = (speed > 0.0);
             _rev = (speed < 0.0);
             temp = abs(speed);
@@ -106,6 +106,19 @@
         return -1;
 }
 
+float Motor::state(void) {
+    if ((_fwd == _rev) && (_pwm > 0)) {
+        return -2;//braking
+    } else if (_pwm == 0) {
+        return 2;//coasting
+    } else if ((_fwd == 0) && (_rev == 1)) {
+        return -(_pwm);//reversing
+    }  else if ((_fwd == 1) && (_rev == 0)) {
+        return _pwm;//fowards
+    } else
+        return -3;//error
+}
+
 /*
  test code, this demonstrates working motor drivers.