rongyu lou / Mbed OS CarPakingSystem_V13

Dependencies:   HCSR04new SSH1106-alan

Committer:
alanchip
Date:
Mon Mar 08 02:43:03 2021 +0000
Revision:
2:1baa0bd2fde0
Child:
3:17acfeba3730
11

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alanchip 2:1baa0bd2fde0 1 #include "mbed.h"
alanchip 2:1baa0bd2fde0 2 #include "platform/mbed_thread.h"
alanchip 2:1baa0bd2fde0 3 #include "Thread_Handle.h"
alanchip 2:1baa0bd2fde0 4 #include "HCSR04.h"
alanchip 2:1baa0bd2fde0 5 #include "main.h"
alanchip 2:1baa0bd2fde0 6 #include "handleTasks.h"
alanchip 2:1baa0bd2fde0 7 #include "rtc.h"
alanchip 2:1baa0bd2fde0 8 #include "SSH1106.h"
alanchip 2:1baa0bd2fde0 9
alanchip 2:1baa0bd2fde0 10 Thread sensor_thread0;
alanchip 2:1baa0bd2fde0 11 Thread sensor_thread1;
alanchip 2:1baa0bd2fde0 12 Thread RTC_thread;
alanchip 2:1baa0bd2fde0 13 Thread sensor_capture_thread;
alanchip 2:1baa0bd2fde0 14 Thread oled_thread;
alanchip 2:1baa0bd2fde0 15
alanchip 2:1baa0bd2fde0 16 //Usensor dist 0-- blue line
alanchip 2:1baa0bd2fde0 17 void dist0_thread(void)
alanchip 2:1baa0bd2fde0 18 {
alanchip 2:1baa0bd2fde0 19 while(true) {
alanchip 2:1baa0bd2fde0 20 //printf("dist0 = %d \n\n", capteur0.measDist());
alanchip 2:1baa0bd2fde0 21 Usensor0.dist = capteur0.measDist();
alanchip 2:1baa0bd2fde0 22 thread_sleep_for(10);
alanchip 2:1baa0bd2fde0 23 }
alanchip 2:1baa0bd2fde0 24 }
alanchip 2:1baa0bd2fde0 25 //Usensor dist 1
alanchip 2:1baa0bd2fde0 26 void dist1_thread(void)
alanchip 2:1baa0bd2fde0 27 {
alanchip 2:1baa0bd2fde0 28 while(true) {
alanchip 2:1baa0bd2fde0 29 //printf("dist1 = %d \n\n", capteur1.measDist());
alanchip 2:1baa0bd2fde0 30 Usensor1.dist = capteur1.measDist();
alanchip 2:1baa0bd2fde0 31 thread_sleep_for(10);
alanchip 2:1baa0bd2fde0 32 }
alanchip 2:1baa0bd2fde0 33 }
alanchip 2:1baa0bd2fde0 34 //Display car number
alanchip 2:1baa0bd2fde0 35 void OLED_refresh_thread()
alanchip 2:1baa0bd2fde0 36 {
alanchip 2:1baa0bd2fde0 37 while(true) {
alanchip 2:1baa0bd2fde0 38 ssh1106.writeText_format(0,1, font_5x8,"Car num:");
alanchip 2:1baa0bd2fde0 39 ssh1106.writeDec_format(55,1, font_5x8,carNum );
alanchip 2:1baa0bd2fde0 40 oled_carStateDisplay();
alanchip 2:1baa0bd2fde0 41 thread_sleep_for(1);
alanchip 2:1baa0bd2fde0 42 }
alanchip 2:1baa0bd2fde0 43 }
alanchip 2:1baa0bd2fde0 44 //display car state
alanchip 2:1baa0bd2fde0 45 void capture_sensor_thread()
alanchip 2:1baa0bd2fde0 46 {
alanchip 2:1baa0bd2fde0 47 while(true) {
alanchip 2:1baa0bd2fde0 48 carState_check_in();
alanchip 2:1baa0bd2fde0 49 display_carState_in();
alanchip 2:1baa0bd2fde0 50 //printf("dist1 = %d ",Usensor1.dist);
alanchip 2:1baa0bd2fde0 51 carState_check_out();
alanchip 2:1baa0bd2fde0 52 display_carState_out();
alanchip 2:1baa0bd2fde0 53 countCarnum();
alanchip 2:1baa0bd2fde0 54 carState = nothing;
alanchip 2:1baa0bd2fde0 55 usensor_paraClear();
alanchip 2:1baa0bd2fde0 56 thread_sleep_for(10);
alanchip 2:1baa0bd2fde0 57 }
alanchip 2:1baa0bd2fde0 58 }
alanchip 2:1baa0bd2fde0 59 //RTC
alanchip 2:1baa0bd2fde0 60 void RTC_display_thread(void)
alanchip 2:1baa0bd2fde0 61 {
alanchip 2:1baa0bd2fde0 62 while(true) {
alanchip 2:1baa0bd2fde0 63 RTC_display();
alanchip 2:1baa0bd2fde0 64 thread_sleep_for(1000);
alanchip 2:1baa0bd2fde0 65 }
alanchip 2:1baa0bd2fde0 66 }
alanchip 2:1baa0bd2fde0 67
alanchip 2:1baa0bd2fde0 68 void init_thread(void)
alanchip 2:1baa0bd2fde0 69 {
alanchip 2:1baa0bd2fde0 70 while(true) {
alanchip 2:1baa0bd2fde0 71 //clear param
alanchip 2:1baa0bd2fde0 72 usensor_paraInit();
alanchip 2:1baa0bd2fde0 73
alanchip 2:1baa0bd2fde0 74 //OLED init
alanchip 2:1baa0bd2fde0 75 ssh1106.init();
alanchip 2:1baa0bd2fde0 76 thread_sleep_for(100);
alanchip 2:1baa0bd2fde0 77 ssh1106.clear();
alanchip 2:1baa0bd2fde0 78 oled_thread.start(OLED_refresh_thread);
alanchip 2:1baa0bd2fde0 79
alanchip 2:1baa0bd2fde0 80 //RTC
alanchip 2:1baa0bd2fde0 81 RTC_INIT();
alanchip 2:1baa0bd2fde0 82 RTC_thread.start(RTC_display_thread);
alanchip 2:1baa0bd2fde0 83
alanchip 2:1baa0bd2fde0 84 //thread0 for Usensor0
alanchip 2:1baa0bd2fde0 85 sensor_thread0.start(dist0_thread);
alanchip 2:1baa0bd2fde0 86 sensor_capture_thread.start(capture_sensor_thread);
alanchip 2:1baa0bd2fde0 87
alanchip 2:1baa0bd2fde0 88 //thread1 for Usensor1
alanchip 2:1baa0bd2fde0 89 sensor_thread1.start(dist1_thread);
alanchip 2:1baa0bd2fde0 90
alanchip 2:1baa0bd2fde0 91 init_start_thread.terminate();// thread gang up
alanchip 2:1baa0bd2fde0 92 }
alanchip 2:1baa0bd2fde0 93 }