Code with mutex and threads

Dependencies:   C12832 Servo mbed-rtos-edited mbed

Fork of NervousPuppySprintOne by Sprint One

Revision:
8:921bd8c81549
Parent:
7:8b2cf5e6e888
--- a/nervousPuppy.cpp	Wed Jan 28 16:49:16 2015 +0000
+++ b/nervousPuppy.cpp	Thu Feb 26 17:21:09 2015 +0000
@@ -11,23 +11,57 @@
 
 C12832 lcd(p5, p7, p6, p8, p11);
 
+void sensor1_thread(void const *args) {
+    while (true) {
+    s1_thread.lock();
+    x = 100*ainRight.read(); 
+    s1_thread.unlock();
+    }
+} 
+void sensor2_thread(void const *args) {
+    while (true) {
+    s2_thread.lock();
+    y = 100*ainLeft.read();
+    s2_thread.unlock();
+    }
+} 
+
+/*void lcd_thread(void const *args) {
+    while (true) {
+        //lcdmutex_thread.lock();
+        lcd.cls();
+        lcd.locate(0,3);
+        lcd.printf("x = %f",x);
+        lcd.printf(" y = %f",y);
+        lcd.printf("rotating by ,%f",pos);
+        //lcdmutex_thread.unlock();
+    }
+}*/
+
+
 
 nervousPuppy::nervousPuppy(){
-    rotation = 0;
+    //rotation = 0;
     int pos = 1000;
+    
     rotate.Enable(1000,20000);
+    
+    //activating threads
+    Thread thr1(sensor1_thread); 
+    Thread thr2(sensor2_thread);
+    //Thread thr3(lcd_thread);
+  
+    
     while(1){
         
-
-        float x = 100*ainRight.read();
-        float y = 100*ainLeft.read();
-        
+    
+      
 
         lcd.cls();
         lcd.locate(0,3);
         lcd.printf("x = %f",x);
         lcd.printf(" y = %f",y);
-        
+      
         
         if(y > 3.5 && x < 3.5){
             lcd.printf("rotating by ,%f",pos);
@@ -38,7 +72,7 @@
             pos -= 50;
             rotate.SetPosition(pos);
         }
-        
+     
     }
 }