rongyu lou / Mbed OS CarPakingSystem_V13

Dependencies:   HCSR04new SSH1106-alan

Committer:
alanchip
Date:
Mon Apr 19 10:10:35 2021 +0000
Revision:
3:17acfeba3730
Parent:
2:1baa0bd2fde0
123

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 3:17acfeba3730 15 Thread time_thread;
alanchip 3:17acfeba3730 16 //Thread realTime_thread;
alanchip 3:17acfeba3730 17
alanchip 3:17acfeba3730 18 int Q=1;
alanchip 3:17acfeba3730 19 //void time_record_thread(void)
alanchip 3:17acfeba3730 20 //{
alanchip 3:17acfeba3730 21 // while(true) {
alanchip 3:17acfeba3730 22 // ssh1106.writeTim_format(10,6, font_5x8,p_tm->tm_hour);
alanchip 3:17acfeba3730 23 // ssh1106.writeTim_format(60,6, font_5x8,p_tm->tm_min);
alanchip 3:17acfeba3730 24 // ssh1106.writeTim_format(120,6, font_5x8,p_tm->tm_sec);
alanchip 3:17acfeba3730 25 // thread_sleep_for(1000);
alanchip 3:17acfeba3730 26 // }
alanchip 3:17acfeba3730 27 //
alanchip 3:17acfeba3730 28 //}
alanchip 3:17acfeba3730 29 void time_check_thread(void)
alanchip 3:17acfeba3730 30 {
alanchip 3:17acfeba3730 31 while(true) {
alanchip 3:17acfeba3730 32 Q++;
alanchip 3:17acfeba3730 33 //printf("%d \n\n",Q);
alanchip 3:17acfeba3730 34 thread_sleep_for(1000);
alanchip 3:17acfeba3730 35 }
alanchip 3:17acfeba3730 36 }
alanchip 2:1baa0bd2fde0 37
alanchip 2:1baa0bd2fde0 38 //Usensor dist 0-- blue line
alanchip 2:1baa0bd2fde0 39 void dist0_thread(void)
alanchip 2:1baa0bd2fde0 40 {
alanchip 2:1baa0bd2fde0 41 while(true) {
alanchip 2:1baa0bd2fde0 42 //printf("dist0 = %d \n\n", capteur0.measDist());
alanchip 2:1baa0bd2fde0 43 Usensor0.dist = capteur0.measDist();
alanchip 2:1baa0bd2fde0 44 thread_sleep_for(10);
alanchip 2:1baa0bd2fde0 45 }
alanchip 2:1baa0bd2fde0 46 }
alanchip 2:1baa0bd2fde0 47 //Usensor dist 1
alanchip 2:1baa0bd2fde0 48 void dist1_thread(void)
alanchip 2:1baa0bd2fde0 49 {
alanchip 2:1baa0bd2fde0 50 while(true) {
alanchip 2:1baa0bd2fde0 51 //printf("dist1 = %d \n\n", capteur1.measDist());
alanchip 2:1baa0bd2fde0 52 Usensor1.dist = capteur1.measDist();
alanchip 2:1baa0bd2fde0 53 thread_sleep_for(10);
alanchip 2:1baa0bd2fde0 54 }
alanchip 2:1baa0bd2fde0 55 }
alanchip 2:1baa0bd2fde0 56 //Display car number
alanchip 3:17acfeba3730 57
alanchip 2:1baa0bd2fde0 58 void OLED_refresh_thread()
alanchip 2:1baa0bd2fde0 59 {
alanchip 3:17acfeba3730 60 int n=1;
alanchip 3:17acfeba3730 61 char str[40];
alanchip 2:1baa0bd2fde0 62 while(true) {
alanchip 2:1baa0bd2fde0 63 ssh1106.writeText_format(0,1, font_5x8,"Car num:");
alanchip 3:17acfeba3730 64 ssh1106.writeDec_format(55,1, font_5x8,carNum );
alanchip 3:17acfeba3730 65 n = sprintf(str, "%d",Q);
alanchip 3:17acfeba3730 66 ssh1106.writeText(0,6, font_5x8,str,n);
alanchip 3:17acfeba3730 67
alanchip 3:17acfeba3730 68
alanchip 2:1baa0bd2fde0 69 oled_carStateDisplay();
alanchip 2:1baa0bd2fde0 70 thread_sleep_for(1);
alanchip 2:1baa0bd2fde0 71 }
alanchip 2:1baa0bd2fde0 72 }
alanchip 2:1baa0bd2fde0 73 //display car state
alanchip 2:1baa0bd2fde0 74 void capture_sensor_thread()
alanchip 2:1baa0bd2fde0 75 {
alanchip 2:1baa0bd2fde0 76 while(true) {
alanchip 2:1baa0bd2fde0 77 carState_check_in();
alanchip 2:1baa0bd2fde0 78 display_carState_in();
alanchip 2:1baa0bd2fde0 79 //printf("dist1 = %d ",Usensor1.dist);
alanchip 2:1baa0bd2fde0 80 carState_check_out();
alanchip 2:1baa0bd2fde0 81 display_carState_out();
alanchip 2:1baa0bd2fde0 82 countCarnum();
alanchip 2:1baa0bd2fde0 83 carState = nothing;
alanchip 2:1baa0bd2fde0 84 usensor_paraClear();
alanchip 2:1baa0bd2fde0 85 thread_sleep_for(10);
alanchip 2:1baa0bd2fde0 86 }
alanchip 2:1baa0bd2fde0 87 }
alanchip 2:1baa0bd2fde0 88 //RTC
alanchip 2:1baa0bd2fde0 89 void RTC_display_thread(void)
alanchip 2:1baa0bd2fde0 90 {
alanchip 2:1baa0bd2fde0 91 while(true) {
alanchip 2:1baa0bd2fde0 92 RTC_display();
alanchip 2:1baa0bd2fde0 93 thread_sleep_for(1000);
alanchip 2:1baa0bd2fde0 94 }
alanchip 2:1baa0bd2fde0 95 }
alanchip 2:1baa0bd2fde0 96
alanchip 2:1baa0bd2fde0 97 void init_thread(void)
alanchip 2:1baa0bd2fde0 98 {
alanchip 2:1baa0bd2fde0 99 while(true) {
alanchip 2:1baa0bd2fde0 100 //clear param
alanchip 2:1baa0bd2fde0 101 usensor_paraInit();
alanchip 2:1baa0bd2fde0 102
alanchip 2:1baa0bd2fde0 103 //OLED init
alanchip 2:1baa0bd2fde0 104 ssh1106.init();
alanchip 2:1baa0bd2fde0 105 thread_sleep_for(100);
alanchip 2:1baa0bd2fde0 106 ssh1106.clear();
alanchip 2:1baa0bd2fde0 107 oled_thread.start(OLED_refresh_thread);
alanchip 3:17acfeba3730 108 time_thread.start(time_check_thread);
alanchip 3:17acfeba3730 109 //realTime_thread.start(time_record_thread);
alanchip 2:1baa0bd2fde0 110 //RTC
alanchip 2:1baa0bd2fde0 111 RTC_INIT();
alanchip 2:1baa0bd2fde0 112 RTC_thread.start(RTC_display_thread);
alanchip 2:1baa0bd2fde0 113
alanchip 2:1baa0bd2fde0 114 //thread0 for Usensor0
alanchip 2:1baa0bd2fde0 115 sensor_thread0.start(dist0_thread);
alanchip 2:1baa0bd2fde0 116 sensor_capture_thread.start(capture_sensor_thread);
alanchip 2:1baa0bd2fde0 117
alanchip 2:1baa0bd2fde0 118 //thread1 for Usensor1
alanchip 2:1baa0bd2fde0 119 sensor_thread1.start(dist1_thread);
alanchip 2:1baa0bd2fde0 120
alanchip 2:1baa0bd2fde0 121 init_start_thread.terminate();// thread gang up
alanchip 2:1baa0bd2fde0 122 }
alanchip 2:1baa0bd2fde0 123 }