Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: C12832_lcd Pulse RangeFinder mbed-rtos mbed
Fork of rtos_basic by
Revision 7:cb446dbb54d9, committed 2015-03-23
- Comitter:
- hervel90
- Date:
- Mon Mar 23 14:58:40 2015 +0000
- Parent:
- 6:209f4db62daf
- Commit message:
- PARALLAX sonar threaded
Changed in this revision
diff -r 209f4db62daf -r cb446dbb54d9 C12832_lcd.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/C12832_lcd.lib Mon Mar 23 14:58:40 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/dreschpe/code/C12832_lcd/#8f86576007d6
diff -r 209f4db62daf -r cb446dbb54d9 Pulse.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Pulse.lib Mon Mar 23 14:58:40 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/NickRyder/code/Pulse/#fb79a4637a64
diff -r 209f4db62daf -r cb446dbb54d9 RangeFinder.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RangeFinder.lib Mon Mar 23 14:58:40 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/NickRyder/code/RangeFinder/#05c9036328ee
diff -r 209f4db62daf -r cb446dbb54d9 main.cpp
--- a/main.cpp Tue Jun 04 16:01:32 2013 +0100
+++ b/main.cpp Mon Mar 23 14:58:40 2015 +0000
@@ -1,21 +1,78 @@
+#include "rtos.h"
#include "mbed.h"
-#include "rtos.h"
-
-DigitalOut led1(LED1);
-DigitalOut led2(LED2);
-
-void led2_thread(void const *args) {
+#include "C12832_lcd.h"
+#include "RangeFinder.h"
+
+// Seeed ultrasound range finder
+RangeFinder rf(p21, 10, 5800.0, 100000);
+BusOut myleds(LED1, LED2, LED3, LED4);
+C12832_LCD lcd;
+
+float sonar_data;
+
+
+void lcd_display(void const *args) {
while (true) {
- led2 = !led2;
- Thread::wait(1000);
+ lcd.locate(0,0);
+ if (sonar_data == -1.0) {
+ lcd.printf("Timeout Error.\n");
+ } else if (sonar_data > 5.0) {
+ lcd.printf("No object within detection range.\n");
+ } else {
+ lcd.printf("Distance = %f m.\n", sonar_data);
+ }
+ Thread::wait(250);
}
}
-
-int main() {
- Thread thread(led2_thread);
+
+void led_display(void const *args) {
+ while (true) {
+ float led_m = 0.790474;
+ if (sonar_data <= led_m)
+ {
+ myleds = 15;
+ }
+ else if (sonar_data > led_m && sonar_data <= 2*led_m )
+ {
+ myleds = 7;
+ }
+ else if (sonar_data > 2*led_m && sonar_data <= 3*led_m )
+ {
+ myleds = 3;
+ }
+ else
+ {
+ myleds = 1;
+ }
- while (true) {
- led1 = !led1;
- Thread::wait(500);
+ Thread::wait(250);
}
}
+
+void serial_display(void const *args) {
+ while (true) {
+ lcd.locate(0,0);
+ if (sonar_data == -1.0) {
+ printf("Timeout Error.\n");
+ } else if (sonar_data > 5.0) {
+ printf("No object within detection range.\n");
+ } else {
+ printf("Distance = %f m.\n", sonar_data);
+ }
+ Thread::wait(250);
+ }
+}
+
+
+int main() {
+ lcd.cls();
+
+ Thread thread1(led_display);
+ Thread thread2(lcd_display);
+ Thread thread3(serial_display);
+
+ while (1) {
+ sonar_data = rf.read_m();
+ Thread::wait(250);
+ }
+}
\ No newline at end of file
diff -r 209f4db62daf -r cb446dbb54d9 mbed-rtos.lib --- a/mbed-rtos.lib Tue Jun 04 16:01:32 2013 +0100 +++ b/mbed-rtos.lib Mon Mar 23 14:58:40 2015 +0000 @@ -1,1 +1,1 @@ -https://mbed.org/users/mbed_official/code/mbed-rtos/ \ No newline at end of file +https://mbed.org/users/mbed_official/code/mbed-rtos/#d3d0e710b443
diff -r 209f4db62daf -r cb446dbb54d9 mbed.bld --- a/mbed.bld Tue Jun 04 16:01:32 2013 +0100 +++ b/mbed.bld Mon Mar 23 14:58:40 2015 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/ \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/487b796308b0 \ No newline at end of file
