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: HCSR04new SSH1106-alan
Diff: main.cpp
- Revision:
- 2:1baa0bd2fde0
- Parent:
- 0:69272b5e3faf
- Child:
- 3:17acfeba3730
--- a/main.cpp Sun Sep 27 06:15:13 2020 +0000 +++ b/main.cpp Mon Mar 08 02:43:03 2021 +0000 @@ -6,192 +6,35 @@ #include "mbed.h" #include "platform/mbed_thread.h" #include "HCSR04.h" - +#include "Thread_Handle.h" +#include "main.h" +#include "handleTasks.h" +#include "rtc.h" +#include "SSH1106.h" // Blinking rate in milliseconds #define BLINKING_RATE_MS 1000 -//Usensor time params -struct Usensor -{ - int dist; - int time_in_min; - int time_in_sec; - int time_out_min; - int time_out_sec; -}; + Serial pc(USBTX, USBRX); //uart init DigitalOut led(LED1); //LED init - -// RTC par -struct tm st_tmp; -struct tm *p_tm; -time_t seconds; - - -//Usensor struct -Usensor Usensor0; -Usensor Usensor1; - -/* -HCSR04_0 - PING: - Trig :D5 - Echo :D4 -*/ -DigitalOut trig0(D5); -DigitalIn echo0(D4); -Timer t ; -HCSR04 capteur0(&trig0, &echo0, &t); -/* -HCSR04_1 - PING: - Trig :D2 - Echo :D3 -*/ -DigitalOut trig1(D2); -DigitalIn echo1(D3); -Timer t1 ; -HCSR04 capteur1(&trig1, &echo1, &t1); - - Thread init_start_thread; -Thread sensor_thread0; -Thread sensor_thread1; -Thread RTC_thread; -Thread sensor_capture_thread; - - - - - - -void RTC_INIT() -{ - st_tmp.tm_year = 2020-1900; - st_tmp.tm_mon = 9; - st_tmp.tm_mday = 27; - st_tmp.tm_hour = 1; - st_tmp.tm_min = 53; - st_tmp.tm_sec = 30; - - seconds = mktime(&st_tmp); - set_time(seconds); -} - -void RTC_display ()//display time printf -{ - seconds = time(NULL); - p_tm = localtime(&seconds); - //Display format year-month-day hour:min:sec - pc.printf("%04d-%02d-%04d %02d:%02d:%02d \n\n", p_tm->tm_year + 1900,p_tm->tm_mon,p_tm->tm_mday, p_tm->tm_hour, p_tm->tm_min, p_tm->tm_sec); -} - -void dist0_thread(void) -{ - while(true){ - //pc.printf("dist0 = %d \n\n", capteur0.measDist()); - Usensor0.dist = capteur0.measDist(); - thread_sleep_for(10); - } -} -void dist1_thread(void) -{ - while(true){ - //pc.printf("dist1 = %d \n\n", capteur1.measDist()); - Usensor1.dist = capteur1.measDist(); - thread_sleep_for(10); - } -} - -void capture_sensor() -{ - while(true){ - //pc.printf("capture_sensor0 is working \n\n"); - if(Usensor0.dist < 10) - { - Usensor0.time_in_min = p_tm->tm_min; - Usensor0.time_in_sec = p_tm->tm_sec; - pc.printf("iiiiiiiiiiin-min-0 = %d \n\n", Usensor0.time_in_min); - pc.printf("iiiiiiiiiiin-sec-0 = %d \n\n", Usensor0.time_in_sec); - - //pc.printf("dist0-------------------------- = %d \n\n", Usensor0.dist); - - while(Usensor0.dist < 10) - { - thread_sleep_for(1); - } - - Usensor0.time_out_min = p_tm->tm_min; - Usensor0.time_out_sec = p_tm->tm_sec; - pc.printf("oooooooooout-min-0 = %d \n\n", Usensor0.time_out_min); - pc.printf("oooooooooout-sec-0 = %d \n\n", Usensor0.time_out_sec); - } - - if(Usensor1.dist < 10) - { - Usensor1.time_in_min = p_tm->tm_min; - Usensor1.time_in_sec = p_tm->tm_sec; - pc.printf("iiiiiiiiiiin-min-11111 = %d \n\n", Usensor1.time_in_min); - pc.printf("iiiiiiiiiiin-sec-11111 = %d \n\n", Usensor1.time_in_sec); - - //pc.printf("dist1-------------------------- = %d \n\n", Usensor1.dist); - - while(Usensor1.dist < 10) - { - thread_sleep_for(1); - } - - Usensor1.time_out_min = p_tm->tm_min; - Usensor1.time_out_sec = p_tm->tm_sec; - pc.printf("oooooooooout-min-11111111 = %d \n\n", Usensor1.time_out_min); - pc.printf("oooooooooout-sec-11111111 = %d \n\n", Usensor1.time_out_sec); - } - thread_sleep_for(10); - } - -} - - -void RTC_display_thread(void) -{ - while(true){ - RTC_display(); - thread_sleep_for(1000); - } -} - -void init_thread(void) -{ - while(true){ - RTC_INIT(); - init_start_thread.terminate();// thread gang up - } -} int main() { - //init + //init start threads + //oled_Init() + + + init_start_thread.start(init_thread); - - //thread0 for Usensor0 - sensor_thread0.start(dist0_thread); - - sensor_capture_thread.start(capture_sensor); - - //thread1 for Usensor1 - sensor_thread1.start(dist1_thread); - - //thread for RTC - RTC_thread.start(RTC_display_thread); - - + while (true) - { - led = !led; + { + led = !led; thread_sleep_for(BLINKING_RATE_MS); } }