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
tsk_dist.cpp
- Committer:
- dzoni
- Date:
- 2015-12-14
- Revision:
- 13:f62b10a6e1c5
- Parent:
- 9:645f0e517017
- Child:
- 15:a627638edd9c
File content as of revision 13:f62b10a6e1c5:
#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(1000); } }