Added various bits, main reformatted. Added .get to class Servo to allow waiting for rotation before recording information.

Dependencies:   SLCD mbed

Fork of Lab6_Basic by ECE 111 At Oregon State University

Revision:
8:c2f0e524696b
Parent:
6:a64d79286726
diff -r 10554a04a34f -r c2f0e524696b Motor.cpp
--- a/Motor.cpp	Sat Nov 19 09:06:16 2016 +0000
+++ b/Motor.cpp	Sat Nov 19 09:10:23 2016 +0000
@@ -1,86 +1,38 @@
- #include "mbed.h"
- #include "Servo.h"
- // gloabl varevlbe used only inseide the class 
-int value_current;
-int value_target;
-float value_target_raw;
-Ticker tick;
-SLCD slcd;
-int n;
-int counter;
-char buffer[50];
+#include "mbed.h"
+#include "Motor.h"
 
-Servo::Servo(PinName analog_input,PinName Positive, PinName Negative,PinName Speed):
-     _feedback(analog_input),_motor(Positive,Negative,Speed) {
-      
-}   
-     /* input is angle intger from 0 - 180 
-     *  
-     */
-void Servo::set(int degree) {
-   if(degree > 90){
-   value_target = degree;   // set the value target as the input of the function
-   tick.attach(this,&Servo::move,0.001); // set the ticker to call move every 0.001 sec
-}
-  else{
-   value_target = degree-15;   // set the value target as the input of the function
-   tick.attach(this,&Servo::move,0.001);   
-      } 
-  
-       }//End of Move
-   
-void Servo::move() {
-
-value_current = (int)((int)(_feedback*1000)*0.30769230769);
-
-if(value_target > value_current){ 
-        _motor.Direction(LEFT);
-      //  _motor.Speed(10);
-        //wait(0.1);
-        n = sprintf (buffer, "%d", value_current);
-        slcd.clear();
-        slcd.Home();  
-        slcd.printf(buffer); 
-       }
-else if(value_target < value_current){
-        _motor.Direction(RIGHT);
-      //  _motor.Speed(counter);
-        n = sprintf (buffer, "%d", value_current);
-        slcd.clear();
-        slcd.Home();  
-        slcd.printf(buffer);
-        }     
-else if((value_target == value_current))
- {
-        tick.detach();
-        _motor.Stop();
-        n = sprintf (buffer, "%d", value_current);
-        slcd.clear();
-        slcd.Home();  
-        slcd.printf(buffer);
-       }
 
 
-      
-
-      }
-      
-     unsigned int Servo::get()
-        {
-            value_current = (int)((int)(_feedback*1000)*0.30769230769);
-           // n = sprintf (buffer, "%d", value_current);
-            return value_current;
+Motor::Motor(PinName Positive, PinName Negative,PinName Speed):
+        _positive(Positive), _negative(Negative), _speed(Speed) {
+     _speed.period(0.03f);      // 
+     _speed.write(0.45f); 
+}   
+     /* Input 1 or 2.
+     *  1 : Postive VCC Negtaive GND, 2 : Postive GND Negtaive VCC.
+     */
+void Motor::Direction(int move) {
+     if(move == 1){
+     _positive = 1;
+     _negative = 0;
+    }
+    else if(move == 2){   
+     _positive = 0;
+     _negative = 1;
         }
+    }//End of Direction
    
-void Servo::check() {
-
-  value_current = (int)((int)(_feedback*1000)*0.30769230769);
-  n = sprintf (buffer, "%d", value_current);
-  slcd.clear();
-  slcd.Home();  
-  slcd.printf(buffer);
-   
-      }
-            
-      
-      
\ No newline at end of file
+     /* No input.
+     *  1 : Postive GND Negtaive GND  
+     */
+void Motor::Stop() {
+     _positive = 0;
+     _negative = 0;
+    }//End of Stop
+    /* input is the .
+     *  1 : Postive GND Negtaive GND  
+     */
+void Motor::Speed(int motor_speed) {
+   float percantage = motor_speed/100;
+   _speed.write(percantage); 
+    }//End of Stop
\ No newline at end of file