for Bertl2014 HTL-Graz-Göoesting

Revision:
2:738a1372c90a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Steuerung_PWM.cpp	Mon Jan 18 10:36:13 2016 +0000
@@ -0,0 +1,122 @@
+#include "mbed.h"
+
+// decleration for left engine
+PwmOut MotorL_EN(P1_15);    
+DigitalOut MotorL_FORWARD(P1_1);   
+DigitalOut MotorL_REVERSE(P1_0); 
+  
+// decleration for right engine
+PwmOut MotorR_EN(P0_21);     
+DigitalOut MotorR_FORWARD(P1_3); 
+DigitalOut MotorR_REVERSE(P1_4);
+
+void period_us(int periode)     // underprogramm fot the periode
+{
+    MotorL_EN.period_us(periode);        // declaration for the Periode of the left egngine
+    MotorR_EN.period_us(periode);        // declaration for the Periode of the right egngine
+}
+
+void bertl_engine(int left, int right)
+{             
+   int index_Engine = 0;    // agrument for the Switch
+                
+    // decleration for left and right engine
+         if (left > 0 && right > 0)             // all arguments are positive
+            index_Engine = 1;
+        
+        else if (left < 0 && right > 0)         // left argument is negative and right is positive
+            index_Engine = 2;
+    
+        else if (left > 0 && right < 0)         // left argument is positive and right is negative
+            index_Engine = 3;
+            
+        else if (left < 0 && right < 0)         // left argument is negative and right is negative
+            index_Engine = 4;
+    
+        else if (left == 0 && right < 0)        // left argument is zero and right is negative
+            index_Engine = 5;
+     
+        else if (left == 0 && right > 0)        // left argument is zero and right is positive
+             index_Engine = 6;    
+        
+        else if (left < 0 && right == 0)        // left argument is negative and right is is zero
+             index_Engine = 7;
+    
+        else if (left > 0 && right == 0)        // left argument is positive and right is is zero
+             index_Engine = 8;
+        else                                    // all egines are zero
+            index_Engine = 9;    
+             
+switch (index_Engine)  //begin Switch
+   { 
+        case 1:
+            MotorR_EN.pulsewidth_us(right);         // to declratate the speed of the right engine (-us - +us)
+            MotorL_EN.pulsewidth_us(left);          // to declratate the speed of the left engine (-us - +us)
+            MotorL_REVERSE = 0;
+            MotorR_REVERSE = 0;
+            MotorL_FORWARD = 1;
+            MotorR_FORWARD = 1;    
+       
+        break;
+            
+        case 2:
+            MotorR_EN.pulsewidth_us(right); 
+            MotorL_EN.pulsewidth_us(-left);
+            MotorL_FORWARD = 0;
+            MotorR_REVERSE = 0;
+            MotorL_REVERSE = 1;
+            MotorR_FORWARD = 1;           
+        break;
+
+        case 3:
+            MotorR_EN.pulsewidth_us(-right); 
+            MotorL_EN.pulsewidth_us(left);
+            MotorL_REVERSE = 0;
+            MotorR_FORWARD = 0;
+            MotorL_FORWARD = 1;
+            MotorR_REVERSE = 1;            
+        break;
+            
+        case 4:
+            MotorR_EN.pulsewidth_us(-right); 
+            MotorL_EN.pulsewidth_us(-left);
+            MotorL_FORWARD = 0;
+            MotorR_FORWARD = 0;
+            MotorL_REVERSE = 1;
+            MotorR_REVERSE = 1;       
+        break;  
+            
+        case 5:
+            MotorL_EN = 0;
+            MotorR_EN.pulsewidth_us(-right); 
+            MotorR_FORWARD = 0;
+            MotorR_REVERSE = 1;
+        break;  
+        
+        case 6:
+            MotorL_EN = 0;
+            MotorR_EN.pulsewidth_us(right); 
+            MotorR_REVERSE = 0;
+            MotorR_FORWARD = 1;
+        break; 
+    
+         case 7:
+            MotorR_EN = 0; 
+            MotorL_EN.pulsewidth_us(-left);
+            MotorL_FORWARD = 0;
+            MotorL_REVERSE = 1;          
+        break;    
+ 
+         case 8:
+            MotorR_EN = 0;
+            MotorL_EN.pulsewidth_us(left);
+            MotorL_REVERSE = 0;
+            MotorL_FORWARD = 1;                    
+         break;    
+         
+        case 9:
+            MotorR_EN = 0;
+            MotorL_EN = 0;
+         break;
+    }//end Switch 
+}//end bertl_engine 
\ No newline at end of file