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: BME280 BMP280 TextLCD
main.cpp
00001 /* 00002 ELEC 351 Group T 00003 Team Members : Christopher Hills, Thomas Morris 00004 Current Verision 22 00005 Overiew: Working Tasks 1,2,3,5,6,7,8,9,10,11,12,13,14,15 00006 00007 Last Revision: Added Mail Box to serial 00008 Todo: 00009 Commnet code 00010 Check for race conditions 00011 Other fixes 00012 */ 00013 00014 #include "SETUP.hpp" 00015 #include "NETWORK.hpp" 00016 #include "FIFO.hpp" 00017 #include "SD_CARD.hpp" 00018 #include "SERIAL_COMMANDS.hpp" 00019 #include "SAMPLE.hpp" 00020 #include "THREADS.hpp" 00021 void SD_Card()//Writes data to the SD card 00022 { 00023 while(1) 00024 { 00025 Thread::signal_wait(1); 00026 Thread::wait(Sample_Rate*1000); //Waits until a new is taken before checking again 00027 SD_Card_Write(); 00028 } 00029 } 00030 void Network() 00031 { 00032 while(1) 00033 { 00034 Thread::wait(NetworkWaitTime);//Waits Network Wait amount of time 00035 Networking(); 00036 } 00037 } 00038 void LCD_Output() 00039 { 00040 while(1) 00041 { 00042 Thread::wait(10);//Small wait 00043 LCD_Print_Output(); 00044 } 00045 } 00046 void Serial_Commands() 00047 { 00048 while(1) 00049 { 00050 Serial_Commands_Output(); 00051 } 00052 00053 } 00054 void LED_Logging() 00055 { 00056 while(1) 00057 { 00058 if(Log_Value == 0) 00059 { 00060 Thread::wait(3000); 00061 } 00062 else if(Log_Value == 1) 00063 { 00064 Yellow_led.flash(0.2); 00065 Thread::wait(2800); 00066 } 00067 else if(Log_Value == 2) 00068 { 00069 Yellow_led.flash(0.2); 00070 Thread::wait(200); 00071 Yellow_led.flash(0.2); 00072 Thread::wait(2400); 00073 } 00074 else if(Log_Value == 3) 00075 { 00076 Yellow_led.flash(0.2); 00077 Thread::wait(200); 00078 Yellow_led.flash(0.2); 00079 Thread::wait(200); 00080 Yellow_led.flash(0.2); 00081 Thread::wait(2000); 00082 } 00083 else if(Log_Value == 4) 00084 { 00085 Yellow_led.flash(0.2); 00086 Thread::wait(200); 00087 Yellow_led.flash(0.2); 00088 Thread::wait(200); 00089 Yellow_led.flash(0.2); 00090 Thread::wait(200); 00091 Yellow_led.flash(0.2); 00092 Thread::wait(1600); 00093 } 00094 else if(Log_Value == 5) 00095 { 00096 Yellow_led.flash(0.2); 00097 Thread::wait(200); 00098 Yellow_led.flash(0.2); 00099 Thread::wait(200); 00100 Yellow_led.flash(0.2); 00101 Thread::wait(200); 00102 Yellow_led.flash(0.2); 00103 Thread::wait(200); 00104 Yellow_led.flash(0.2); 00105 Thread::wait(1200); 00106 } 00107 else 00108 { 00109 Log_Value = 0; 00110 } 00111 } 00112 } 00113 void Sample() 00114 { 00115 Sample_Event(); 00116 } 00117 int main() 00118 { 00119 set_time(1515352584); //Set RTC time to December 10 2017 00120 00121 pc.baud(9600); //Sets the Serial Comms Baud Rate 00122 00123 LCD.Initialise(); 00124 LCD.DDRAM_Address(0x00); 00125 00126 post(); //Power on Self Test 00127 00128 Sample_Rate = TimerInterval; 00129 //Run interrupt 00130 Sampling_Timer.attach(&Sampling_ISR,Sample_Rate); 00131 00132 t1.start(Sample); 00133 t2.start(SD_Card); 00134 t3.start(LCD_Output); 00135 t4.start(Network); 00136 t5.start(Serial_Commands); 00137 t6.start(LED_Logging); 00138 //Main thread ID 00139 00140 idMain = osThreadGetId(); //CMSIS RTOS call 00141 00142 //Thread ID 00143 id1 = t1.gettid(); 00144 id2 = t2.gettid(); 00145 id3 = t3.gettid(); 00146 id4 = t4.gettid(); 00147 id5 = t5.gettid(); 00148 id6 = t6.gettid(); 00149 00150 while(true) 00151 { 00152 if(SD_CARD_DETECT.read() == 1) 00153 { 00154 t2.signal_set(DONT_WRITE_TO_SD_CARD); 00155 errorCode(SD_CARD_REMOVED); 00156 } 00157 else if(SD_CARD_DETECT.read() == 0) 00158 { 00159 t2.signal_set(SD_CARD_WRITE); 00160 } 00161 else 00162 { 00163 t2.signal_set(SD_CARD_WRITE); 00164 } 00165 if(onBoardSwitch == 1) 00166 { 00167 SD_Card_Eject(); 00168 Green_led.switchOn(); 00169 } 00170 } 00171 }
Generated on Sun Jul 31 2022 05:12:27 by
1.7.2