Simple test program to get familiar with functionality of MBED RTOS on ST Nucleo-F411RE. Tasks for LED blinking, user button, temperature measurement with DS1620, temperature measurement with internal temperature sensor of ST32F411RE, ultrasonic distance measurement and displaying result on 16x2 TextLCD.

Dependencies:   DS1620_improved TextLCD_improved mbed-rtos mbed

Revision:
9:645f0e517017
Child:
13:f62b10a6e1c5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tsk_dist.cpp	Mon Dec 14 11:32:15 2015 +0000
@@ -0,0 +1,53 @@
+#include "mbed.h"
+#include "rtos.h"
+
+#include "tsk_dist.h"
+
+
+struct dist_data_struct dist_data = { 10000, 10.0f };
+
+
+static DigitalOut  trigDist(PB_9);
+static DigitalIn   echoDist(PA_6);
+
+static Timer   timer;
+
+
+void dist_thread(void const *args) {
+    
+    while (true) {    
+        // Dej puls na trig
+        trigDist = 1;
+        Thread::wait(1);
+        trigDist = 0;
+    
+        if (echoDist != 0) {
+            dist_data.timerTicks = 0;
+            dist_data.distance = 0.0f;
+        } else {
+            timer.stop();
+            timer.reset();
+                
+            // Cekej na hranu na Echo
+            while (echoDist != 1)
+                ;
+        
+            // Zacni merit cas
+            timer.start();
+        
+            // Cekej na hranu na Echo
+            while (echoDist != 0)
+                ;
+        
+            // Zastav mereni    
+            timer.stop();
+                   
+            dist_data.timerTicks = timer.read_us();
+        
+            // 340 ms-1
+            dist_data.distance = (timer.read()/2.0f - 0.0f)*340.0f*1000.0f;
+        }
+        
+        Thread::wait(500);
+    }
+}