ECE 4180 Project for Spring 2020
Dependencies: mbed mbed-rtos SDFileSystem PinDetect ESP8266NodeMCUInterface
main.cpp@1:5ae291085f75, 2020-05-01 (annotated)
- Committer:
- kimberlylie99
- Date:
- Fri May 01 18:43:13 2020 +0000
- Revision:
- 1:5ae291085f75
- Parent:
- 0:b97c07227845
Edit Main.cpp;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kimberlylie99 | 0:b97c07227845 | 1 | #include "mbed.h" |
| kimberlylie99 | 0:b97c07227845 | 2 | #include "uLCD_4DGL.h" |
| kimberlylie99 | 0:b97c07227845 | 3 | #include "ultrasonic.h" |
| kimberlylie99 | 0:b97c07227845 | 4 | #include "rtos.h" |
| kimberlylie99 | 0:b97c07227845 | 5 | #include "PinDetect.h" |
| kimberlylie99 | 0:b97c07227845 | 6 | #include "SDFileSystem.h" |
| kimberlylie99 | 0:b97c07227845 | 7 | #include "wave_player.h" |
| kimberlylie99 | 0:b97c07227845 | 8 | #include "PowerControl/PowerControl.h" |
| kimberlylie99 | 0:b97c07227845 | 9 | #include "PowerControl/EthernetPowerControl.h" |
| kimberlylie99 | 0:b97c07227845 | 10 | #include <iostream> |
| kimberlylie99 | 0:b97c07227845 | 11 | #include <string> |
| kimberlylie99 | 0:b97c07227845 | 12 | #include <sstream> |
| kimberlylie99 | 0:b97c07227845 | 13 | #include <time.h> |
| kimberlylie99 | 0:b97c07227845 | 14 | |
| kimberlylie99 | 0:b97c07227845 | 15 | // --------------------------------------- Pin Declarations --------------------------------------- |
| kimberlylie99 | 0:b97c07227845 | 16 | // Pins used for WiFi |
| kimberlylie99 | 0:b97c07227845 | 17 | Serial pc(USBTX, USBRX); |
| kimberlylie99 | 0:b97c07227845 | 18 | Serial esp(p9, p10); // tx, rx |
| kimberlylie99 | 0:b97c07227845 | 19 | DigitalOut reset(p26); |
| kimberlylie99 | 0:b97c07227845 | 20 | Timer t; |
| kimberlylie99 | 0:b97c07227845 | 21 | |
| kimberlylie99 | 0:b97c07227845 | 22 | // Pins used for uLCD and Sonar |
| kimberlylie99 | 0:b97c07227845 | 23 | uLCD_4DGL uLCD(p28, p27, p29); // serial tx, serial rx, reset pin; |
| kimberlylie99 | 0:b97c07227845 | 24 | DigitalOut led1(LED1); |
| kimberlylie99 | 0:b97c07227845 | 25 | PinDetect pb(p25); |
| kimberlylie99 | 0:b97c07227845 | 26 | Mutex howMany; |
| kimberlylie99 | 0:b97c07227845 | 27 | |
| kimberlylie99 | 0:b97c07227845 | 28 | // Pins used for SD card and speaker |
| kimberlylie99 | 0:b97c07227845 | 29 | SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card |
| kimberlylie99 | 0:b97c07227845 | 30 | AnalogOut DACout(p18); |
| kimberlylie99 | 0:b97c07227845 | 31 | wave_player waver(&DACout); |
| kimberlylie99 | 0:b97c07227845 | 32 | |
| kimberlylie99 | 0:b97c07227845 | 33 | // Pins used for Bluetooth |
| kimberlylie99 | 0:b97c07227845 | 34 | RawSerial blue(p13,p14); |
| kimberlylie99 | 0:b97c07227845 | 35 | |
| kimberlylie99 | 0:b97c07227845 | 36 | // --------------------------------------- Variable Declarations --------------------------------------- |
| kimberlylie99 | 0:b97c07227845 | 37 | // Variables used for WiFi |
| kimberlylie99 | 0:b97c07227845 | 38 | int lcount,lended,ltimeout; |
| kimberlylie99 | 0:b97c07227845 | 39 | char buf[2024]; |
| kimberlylie99 | 0:b97c07227845 | 40 | char snd[1024]; |
| kimberlylie99 | 1:5ae291085f75 | 41 | char ssid[32] = "ssid"; // enter WiFi router ssid inside the quotes |
| kimberlylie99 | 1:5ae291085f75 | 42 | char pwd [32] = "password"; // enter WiFi router password inside the quotes |
| kimberlylie99 | 0:b97c07227845 | 43 | |
| kimberlylie99 | 0:b97c07227845 | 44 | // Variables used for uLCD and Sonar |
| kimberlylie99 | 0:b97c07227845 | 45 | int year, month, day, hr, mn, sec; |
| kimberlylie99 | 0:b97c07227845 | 46 | int howManyTodayold = 0; |
| kimberlylie99 | 0:b97c07227845 | 47 | int howManyToday = 0; |
| kimberlylie99 | 0:b97c07227845 | 48 | int dailyLimit; |
| kimberlylie99 | 0:b97c07227845 | 49 | double increment = 0; // DEFAULT: USE DATABASE TO UPDATE THE AMOUNT |
| kimberlylie99 | 0:b97c07227845 | 50 | std::string foodName = ""; // so save the food name |
| kimberlylie99 | 0:b97c07227845 | 51 | std::string macroName = ""; // to save user's desired macro |
| kimberlylie99 | 0:b97c07227845 | 52 | std::string daily = ""; // to save daily amount |
| kimberlylie99 | 0:b97c07227845 | 53 | std:: string stringTime = ""; // to save current time and date |
| kimberlylie99 | 0:b97c07227845 | 54 | std:: string todayIs = ""; |
| kimberlylie99 | 0:b97c07227845 | 55 | |
| kimberlylie99 | 0:b97c07227845 | 56 | // --------------------------------------- Function Declarations --------------------------------------- |
| kimberlylie99 | 0:b97c07227845 | 57 | // Function declarations for WiFi |
| kimberlylie99 | 0:b97c07227845 | 58 | double queryMFP(string, string); |
| kimberlylie99 | 0:b97c07227845 | 59 | double MFP_LookupTest(string, string); |
| kimberlylie99 | 0:b97c07227845 | 60 | void SendCMD(),getreply(),ESPconfig(); |
| kimberlylie99 | 0:b97c07227845 | 61 | |
| kimberlylie99 | 0:b97c07227845 | 62 | // Function declarations for uLCD and Sonar |
| kimberlylie99 | 0:b97c07227845 | 63 | time_t asUnixTime(int, int, int, int, int, int); |
| kimberlylie99 | 0:b97c07227845 | 64 | void dist(int); |
| kimberlylie99 | 0:b97c07227845 | 65 | void updateHowManyToday(void); |
| kimberlylie99 | 0:b97c07227845 | 66 | |
| kimberlylie99 | 0:b97c07227845 | 67 | // Function declarations for speaker and sd card |
| kimberlylie99 | 0:b97c07227845 | 68 | void play_song(); |
| kimberlylie99 | 0:b97c07227845 | 69 | void updateTime(); |
| kimberlylie99 | 0:b97c07227845 | 70 | |
| kimberlylie99 | 0:b97c07227845 | 71 | // --------------------------------------- Begin Code --------------------------------------- |
| kimberlylie99 | 0:b97c07227845 | 72 | // Functions used for WiFi |
| kimberlylie99 | 0:b97c07227845 | 73 | double queryMFP(string food, string macro) |
| kimberlylie99 | 0:b97c07227845 | 74 | { |
| kimberlylie99 | 0:b97c07227845 | 75 | wait(1); |
| kimberlylie99 | 0:b97c07227845 | 76 | strcpy(snd,"srv = net.createConnection(net.TCP, 0)\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 77 | SendCMD(); |
| kimberlylie99 | 0:b97c07227845 | 78 | wait(1); |
| kimberlylie99 | 0:b97c07227845 | 79 | strcpy(snd,"srv:on(\"receive\", function(sck, c) print(c) end)\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 80 | SendCMD(); |
| kimberlylie99 | 0:b97c07227845 | 81 | wait(1); |
| kimberlylie99 | 0:b97c07227845 | 82 | strcpy(snd,"srv:connect(80,\"spectrosam.org\")\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 83 | SendCMD(); |
| kimberlylie99 | 0:b97c07227845 | 84 | wait(1); |
| kimberlylie99 | 0:b97c07227845 | 85 | sprintf(snd, "sck:send(\"GET /trial.php?query=%s HTTP/1.1\r\nHost: http://spectrosam.org/\r\nAccept: */*\r\n\r\n\")", food); |
| kimberlylie99 | 0:b97c07227845 | 86 | SendCMD(); |
| kimberlylie99 | 0:b97c07227845 | 87 | wait(1); |
| kimberlylie99 | 0:b97c07227845 | 88 | ltimeout=15; |
| kimberlylie99 | 0:b97c07227845 | 89 | getreply(); |
| kimberlylie99 | 0:b97c07227845 | 90 | pc.printf(buf); |
| kimberlylie99 | 0:b97c07227845 | 91 | |
| kimberlylie99 | 0:b97c07227845 | 92 | string resp(buf); |
| kimberlylie99 | 0:b97c07227845 | 93 | size_t found = resp.find(macro); |
| kimberlylie99 | 0:b97c07227845 | 94 | int start = found + macro.size() + 2; //after finding the macro string, go to the end of it, and add two for the quotes and colon |
| kimberlylie99 | 0:b97c07227845 | 95 | int end = start + 3; // D.D of macro value |
| kimberlylie99 | 0:b97c07227845 | 96 | string input = resp.substr(start,end); |
| kimberlylie99 | 0:b97c07227845 | 97 | |
| kimberlylie99 | 0:b97c07227845 | 98 | // convert string to char array |
| kimberlylie99 | 0:b97c07227845 | 99 | int n = input.length(); |
| kimberlylie99 | 0:b97c07227845 | 100 | // declaring character array |
| kimberlylie99 | 0:b97c07227845 | 101 | char char_array[n + 1]; |
| kimberlylie99 | 0:b97c07227845 | 102 | // copying the contents of the |
| kimberlylie99 | 0:b97c07227845 | 103 | // string to char array |
| kimberlylie99 | 0:b97c07227845 | 104 | strcpy(char_array, input.c_str()); |
| kimberlylie99 | 0:b97c07227845 | 105 | return atoll(char_array); |
| kimberlylie99 | 0:b97c07227845 | 106 | } |
| kimberlylie99 | 0:b97c07227845 | 107 | |
| kimberlylie99 | 0:b97c07227845 | 108 | void ESPconfig() |
| kimberlylie99 | 0:b97c07227845 | 109 | { |
| kimberlylie99 | 0:b97c07227845 | 110 | wait(5); |
| kimberlylie99 | 0:b97c07227845 | 111 | pc.printf("\f---------- Starting ESP Config ----------\r\n\n"); |
| kimberlylie99 | 0:b97c07227845 | 112 | strcpy(snd,".\r\n.\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 113 | SendCMD(); |
| kimberlylie99 | 0:b97c07227845 | 114 | wait(1); |
| kimberlylie99 | 0:b97c07227845 | 115 | pc.printf("---------- Reset & get Firmware ----------\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 116 | strcpy(snd,"node.restart()\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 117 | SendCMD(); |
| kimberlylie99 | 0:b97c07227845 | 118 | ltimeout=5; |
| kimberlylie99 | 0:b97c07227845 | 119 | getreply(); |
| kimberlylie99 | 0:b97c07227845 | 120 | pc.printf(buf); |
| kimberlylie99 | 0:b97c07227845 | 121 | wait(2); |
| kimberlylie99 | 0:b97c07227845 | 122 | |
| kimberlylie99 | 0:b97c07227845 | 123 | // set CWMODE to 1=Station,2=AP,3=BOTH, default mode 1 (Station) |
| kimberlylie99 | 0:b97c07227845 | 124 | pc.printf("\n---------- Setting Mode ----------\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 125 | strcpy(snd, "wifi.setmode(wifi.STATION)\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 126 | SendCMD(); |
| kimberlylie99 | 0:b97c07227845 | 127 | ltimeout=4; |
| kimberlylie99 | 0:b97c07227845 | 128 | getreply(); |
| kimberlylie99 | 0:b97c07227845 | 129 | pc.printf(buf); |
| kimberlylie99 | 0:b97c07227845 | 130 | wait(2); |
| kimberlylie99 | 0:b97c07227845 | 131 | |
| kimberlylie99 | 0:b97c07227845 | 132 | pc.printf("\n---------- Connecting to AP ----------\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 133 | pc.printf("ssid = %s pwd = %s\r\n",ssid,pwd); |
| kimberlylie99 | 0:b97c07227845 | 134 | strcpy(snd, "wifi.sta.config(\""); |
| kimberlylie99 | 0:b97c07227845 | 135 | strcat(snd, ssid); |
| kimberlylie99 | 0:b97c07227845 | 136 | strcat(snd, "\",\""); |
| kimberlylie99 | 0:b97c07227845 | 137 | strcat(snd, pwd); |
| kimberlylie99 | 0:b97c07227845 | 138 | strcat(snd, "\")\r\n"); |
| kimberlylie99 | 0:b97c07227845 | 139 | SendCMD(); |
| kimberlylie99 | 0:b97c07227845 | 140 | ltimeout=10; |
| kimberlylie99 | 0:b97c07227845 | 141 | getreply(); |
| kimberlylie99 | 0:b97c07227845 | 142 | pc.printf(buf); |
| kimberlylie99 | 0:b97c07227845 | 143 | |
| kimberlylie99 | 0:b97c07227845 | 144 | wait(5); |
| kimberlylie99 | 0:b97c07227845 | 145 | |
| kimberlylie99 | 0:b97c07227845 | 146 | } |
| kimberlylie99 | 0:b97c07227845 | 147 | |
| kimberlylie99 | 0:b97c07227845 | 148 | void SendCMD() |
| kimberlylie99 | 0:b97c07227845 | 149 | { |
| kimberlylie99 | 0:b97c07227845 | 150 | esp.printf("%s", snd); |
| kimberlylie99 | 0:b97c07227845 | 151 | } |
| kimberlylie99 | 0:b97c07227845 | 152 | |
| kimberlylie99 | 0:b97c07227845 | 153 | void getreply() |
| kimberlylie99 | 0:b97c07227845 | 154 | { |
| kimberlylie99 | 0:b97c07227845 | 155 | memset(buf, '\0', sizeof(buf)); |
| kimberlylie99 | 0:b97c07227845 | 156 | t.start(); |
| kimberlylie99 | 0:b97c07227845 | 157 | lended=0; |
| kimberlylie99 | 0:b97c07227845 | 158 | lcount=0; |
| kimberlylie99 | 0:b97c07227845 | 159 | while(!lended) { |
| kimberlylie99 | 0:b97c07227845 | 160 | if(esp.readable()) { |
| kimberlylie99 | 0:b97c07227845 | 161 | buf[lcount] = esp.getc(); |
| kimberlylie99 | 0:b97c07227845 | 162 | lcount++; |
| kimberlylie99 | 0:b97c07227845 | 163 | } |
| kimberlylie99 | 0:b97c07227845 | 164 | if(t.read() > ltimeout) { |
| kimberlylie99 | 0:b97c07227845 | 165 | lended = 1; |
| kimberlylie99 | 0:b97c07227845 | 166 | t.stop(); |
| kimberlylie99 | 0:b97c07227845 | 167 | t.reset(); |
| kimberlylie99 | 0:b97c07227845 | 168 | } |
| kimberlylie99 | 0:b97c07227845 | 169 | } |
| kimberlylie99 | 0:b97c07227845 | 170 | } |
| kimberlylie99 | 0:b97c07227845 | 171 | |
| kimberlylie99 | 0:b97c07227845 | 172 | time_t asUnixTime(int year, int mon, int mday, int hour, int min, int sec) { |
| kimberlylie99 | 0:b97c07227845 | 173 | struct tm t; |
| kimberlylie99 | 0:b97c07227845 | 174 | t.tm_year = year - 1900; |
| kimberlylie99 | 0:b97c07227845 | 175 | t.tm_mon = mon - 1; // convert to 0 based month |
| kimberlylie99 | 0:b97c07227845 | 176 | t.tm_mday = mday; |
| kimberlylie99 | 0:b97c07227845 | 177 | t.tm_hour = hour; |
| kimberlylie99 | 0:b97c07227845 | 178 | t.tm_min = min; |
| kimberlylie99 | 0:b97c07227845 | 179 | t.tm_sec = sec; |
| kimberlylie99 | 0:b97c07227845 | 180 | t.tm_isdst = -1; // Is Daylight saving time on? 1 = yes, 0 = no, -1 = unknown |
| kimberlylie99 | 0:b97c07227845 | 181 | |
| kimberlylie99 | 0:b97c07227845 | 182 | return mktime(&t); // returns seconds elapsed since January 1, 1970 (begin of the Epoch) |
| kimberlylie99 | 0:b97c07227845 | 183 | } |
| kimberlylie99 | 0:b97c07227845 | 184 | |
| kimberlylie99 | 0:b97c07227845 | 185 | void dist(int distance) |
| kimberlylie99 | 0:b97c07227845 | 186 | { |
| kimberlylie99 | 0:b97c07227845 | 187 | //put code here to execute when the distance has changed |
| kimberlylie99 | 0:b97c07227845 | 188 | led1 = !led1; |
| kimberlylie99 | 0:b97c07227845 | 189 | howMany.lock(); |
| kimberlylie99 | 0:b97c07227845 | 190 | if (howManyToday != howManyTodayold) { |
| kimberlylie99 | 0:b97c07227845 | 191 | updateTime(); |
| kimberlylie99 | 0:b97c07227845 | 192 | if (howManyToday >= dailyLimit) { |
| kimberlylie99 | 0:b97c07227845 | 193 | uLCD.cls(); |
| kimberlylie99 | 0:b97c07227845 | 194 | uLCD.text_width(2); |
| kimberlylie99 | 0:b97c07227845 | 195 | uLCD.text_height(2); |
| kimberlylie99 | 0:b97c07227845 | 196 | uLCD.filled_rectangle(0,0,127,127,RED); |
| kimberlylie99 | 0:b97c07227845 | 197 | uLCD.filled_rectangle(15,10,110,90,0x50C878); |
| kimberlylie99 | 0:b97c07227845 | 198 | uLCD.textbackground_color(0x50C878); |
| kimberlylie99 | 0:b97c07227845 | 199 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 200 | uLCD.locate(2,1); |
| kimberlylie99 | 0:b97c07227845 | 201 | uLCD.printf("Hello!"); |
| kimberlylie99 | 0:b97c07227845 | 202 | uLCD.locate(3,3); |
| kimberlylie99 | 0:b97c07227845 | 203 | uLCD.text_width(1); |
| kimberlylie99 | 0:b97c07227845 | 204 | uLCD.text_height(2); |
| kimberlylie99 | 0:b97c07227845 | 205 | uLCD.printf("%d / %d\n", howManyToday, dailyLimit); |
| kimberlylie99 | 0:b97c07227845 | 206 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 207 | uLCD.text_width(1); |
| kimberlylie99 | 0:b97c07227845 | 208 | uLCD.text_height(2); |
| kimberlylie99 | 0:b97c07227845 | 209 | uLCD.textbackground_color(RED); |
| kimberlylie99 | 0:b97c07227845 | 210 | uLCD.locate(6,14); |
| kimberlylie99 | 0:b97c07227845 | 211 | uLCD.printf("%s", macroName); |
| kimberlylie99 | 0:b97c07227845 | 212 | |
| kimberlylie99 | 0:b97c07227845 | 213 | // Play warning song |
| kimberlylie99 | 0:b97c07227845 | 214 | play_song(); |
| kimberlylie99 | 0:b97c07227845 | 215 | |
| kimberlylie99 | 0:b97c07227845 | 216 | } else { |
| kimberlylie99 | 0:b97c07227845 | 217 | uLCD.cls(); |
| kimberlylie99 | 0:b97c07227845 | 218 | uLCD.text_width(2); |
| kimberlylie99 | 0:b97c07227845 | 219 | uLCD.text_height(2); |
| kimberlylie99 | 0:b97c07227845 | 220 | uLCD.filled_rectangle(0,0,127,127,0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 221 | uLCD.filled_rectangle(15,10,110,90,0x50C878); |
| kimberlylie99 | 0:b97c07227845 | 222 | uLCD.textbackground_color(0x50C878); |
| kimberlylie99 | 0:b97c07227845 | 223 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 224 | uLCD.locate(2,1); |
| kimberlylie99 | 0:b97c07227845 | 225 | uLCD.printf("Hello!"); |
| kimberlylie99 | 0:b97c07227845 | 226 | uLCD.locate(3,3); |
| kimberlylie99 | 0:b97c07227845 | 227 | uLCD.text_width(1); |
| kimberlylie99 | 0:b97c07227845 | 228 | uLCD.text_height(2); |
| kimberlylie99 | 0:b97c07227845 | 229 | uLCD.printf("%d / %d\n", howManyToday, dailyLimit); |
| kimberlylie99 | 0:b97c07227845 | 230 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 231 | uLCD.text_width(1); |
| kimberlylie99 | 0:b97c07227845 | 232 | uLCD.text_height(1); |
| kimberlylie99 | 0:b97c07227845 | 233 | uLCD.locate(6,14); |
| kimberlylie99 | 0:b97c07227845 | 234 | uLCD.textbackground_color(0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 235 | uLCD.printf("%s", macroName); |
| kimberlylie99 | 0:b97c07227845 | 236 | |
| kimberlylie99 | 0:b97c07227845 | 237 | } |
| kimberlylie99 | 0:b97c07227845 | 238 | howManyTodayold = howManyToday; |
| kimberlylie99 | 0:b97c07227845 | 239 | } |
| kimberlylie99 | 0:b97c07227845 | 240 | howMany.unlock(); |
| kimberlylie99 | 0:b97c07227845 | 241 | //pc.printf("Distance %d mm\r\n", distance); |
| kimberlylie99 | 0:b97c07227845 | 242 | } |
| kimberlylie99 | 0:b97c07227845 | 243 | |
| kimberlylie99 | 0:b97c07227845 | 244 | ultrasonic mu(p11, p12, .1, 1, &dist); //Set the trigger pin to D12 and the echo pin to D13 |
| kimberlylie99 | 0:b97c07227845 | 245 | //have updates every .1 seconds and a timeout after 1 |
| kimberlylie99 | 0:b97c07227845 | 246 | //second, and call dist when the distance changes |
| kimberlylie99 | 0:b97c07227845 | 247 | |
| kimberlylie99 | 0:b97c07227845 | 248 | void updateHowManyToday(void) { |
| kimberlylie99 | 0:b97c07227845 | 249 | if (mu.getCurrentDistance() < 50) { |
| kimberlylie99 | 0:b97c07227845 | 250 | howMany.lock(); |
| kimberlylie99 | 0:b97c07227845 | 251 | howManyTodayold = howManyToday; |
| kimberlylie99 | 0:b97c07227845 | 252 | howManyToday = howManyToday + (int)increment; |
| kimberlylie99 | 0:b97c07227845 | 253 | howMany.unlock(); |
| kimberlylie99 | 0:b97c07227845 | 254 | } |
| kimberlylie99 | 0:b97c07227845 | 255 | } |
| kimberlylie99 | 0:b97c07227845 | 256 | |
| kimberlylie99 | 0:b97c07227845 | 257 | // Functions used for speaker and sd card |
| kimberlylie99 | 0:b97c07227845 | 258 | void play_song() { |
| kimberlylie99 | 0:b97c07227845 | 259 | std::string song = "/sd/NoNoNo3.wav"; |
| kimberlylie99 | 0:b97c07227845 | 260 | FILE *wave_file; |
| kimberlylie99 | 0:b97c07227845 | 261 | wave_file=fopen(song.c_str(),"r"); |
| kimberlylie99 | 0:b97c07227845 | 262 | waver.play(wave_file); |
| kimberlylie99 | 0:b97c07227845 | 263 | fclose(wave_file); |
| kimberlylie99 | 0:b97c07227845 | 264 | } |
| kimberlylie99 | 0:b97c07227845 | 265 | |
| kimberlylie99 | 0:b97c07227845 | 266 | void updateTime(){ |
| kimberlylie99 | 0:b97c07227845 | 267 | time_t curTime = time(NULL); |
| kimberlylie99 | 0:b97c07227845 | 268 | FILE *fp = fopen("/sd/Logging.csv", "a"); |
| kimberlylie99 | 0:b97c07227845 | 269 | std:: string test = asctime(localtime(&curTime)); |
| kimberlylie99 | 0:b97c07227845 | 270 | if (todayIs.compare(test.substr(0,10)) != 0){ |
| kimberlylie99 | 0:b97c07227845 | 271 | howManyToday = 0; |
| kimberlylie99 | 0:b97c07227845 | 272 | todayIs = test.substr(0,10); |
| kimberlylie99 | 0:b97c07227845 | 273 | fprintf(fp, "\n%s\n\n", todayIs.c_str()); |
| kimberlylie99 | 0:b97c07227845 | 274 | } |
| kimberlylie99 | 0:b97c07227845 | 275 | fprintf(fp, "%s, %d g, %s\n", foodName.c_str(), (int)increment, macroName.c_str()); |
| kimberlylie99 | 0:b97c07227845 | 276 | fclose(fp); |
| kimberlylie99 | 0:b97c07227845 | 277 | } |
| kimberlylie99 | 0:b97c07227845 | 278 | |
| kimberlylie99 | 0:b97c07227845 | 279 | int main() { |
| kimberlylie99 | 0:b97c07227845 | 280 | // Start of uLCD code |
| kimberlylie99 | 0:b97c07227845 | 281 | bool startUp = 1, name = 1, limit = 1, settingTime = 1; |
| kimberlylie99 | 0:b97c07227845 | 282 | uLCD.cls(); |
| kimberlylie99 | 0:b97c07227845 | 283 | uLCD.filled_rectangle(0,0,127,127,0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 284 | uLCD.line(0, 9, 127, 9, GREEN); |
| kimberlylie99 | 0:b97c07227845 | 285 | uLCD.filled_rectangle(0,0,127,9,GREEN); |
| kimberlylie99 | 0:b97c07227845 | 286 | uLCD.line(0, 118, 127, 118, GREEN); |
| kimberlylie99 | 0:b97c07227845 | 287 | uLCD.filled_rectangle(0,118,127,127,GREEN); |
| kimberlylie99 | 0:b97c07227845 | 288 | uLCD.textbackground_color(0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 289 | uLCD.color(DGREY); |
| kimberlylie99 | 0:b97c07227845 | 290 | uLCD.text_height(1.80); |
| kimberlylie99 | 0:b97c07227845 | 291 | |
| kimberlylie99 | 0:b97c07227845 | 292 | uLCD.locate(4,2); |
| kimberlylie99 | 0:b97c07227845 | 293 | uLCD.printf("WELCOME!"); |
| kimberlylie99 | 0:b97c07227845 | 294 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 295 | uLCD.locate(1,4); |
| kimberlylie99 | 0:b97c07227845 | 296 | uLCD.printf("Please enter the name"); |
| kimberlylie99 | 0:b97c07227845 | 297 | uLCD.printf(" of the food."); |
| kimberlylie99 | 0:b97c07227845 | 298 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 299 | uLCD.locate(1,7); |
| kimberlylie99 | 0:b97c07227845 | 300 | |
| kimberlylie99 | 0:b97c07227845 | 301 | while (name) { |
| kimberlylie99 | 0:b97c07227845 | 302 | if (blue.readable()) { |
| kimberlylie99 | 0:b97c07227845 | 303 | char v = blue.getc(); |
| kimberlylie99 | 0:b97c07227845 | 304 | if (v == '!'){ |
| kimberlylie99 | 0:b97c07227845 | 305 | name = 0; |
| kimberlylie99 | 0:b97c07227845 | 306 | } else if (int(v) == 8) { |
| kimberlylie99 | 0:b97c07227845 | 307 | foodName.erase(foodName.end()-1); |
| kimberlylie99 | 0:b97c07227845 | 308 | } else { |
| kimberlylie99 | 0:b97c07227845 | 309 | foodName.push_back(v); |
| kimberlylie99 | 0:b97c07227845 | 310 | uLCD.printf("%c" , v); |
| kimberlylie99 | 0:b97c07227845 | 311 | } |
| kimberlylie99 | 0:b97c07227845 | 312 | } |
| kimberlylie99 | 0:b97c07227845 | 313 | } |
| kimberlylie99 | 0:b97c07227845 | 314 | |
| kimberlylie99 | 0:b97c07227845 | 315 | uLCD.cls(); |
| kimberlylie99 | 0:b97c07227845 | 316 | uLCD.filled_rectangle(0,0,127,127,0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 317 | uLCD.line(0, 9, 127, 9, GREEN); |
| kimberlylie99 | 0:b97c07227845 | 318 | uLCD.filled_rectangle(0,0,127,9,GREEN); |
| kimberlylie99 | 0:b97c07227845 | 319 | uLCD.line(0, 118, 127, 118, GREEN); |
| kimberlylie99 | 0:b97c07227845 | 320 | uLCD.filled_rectangle(0,118,127,127,GREEN); |
| kimberlylie99 | 0:b97c07227845 | 321 | uLCD.textbackground_color(0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 322 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 323 | uLCD.text_height(1); |
| kimberlylie99 | 0:b97c07227845 | 324 | |
| kimberlylie99 | 0:b97c07227845 | 325 | uLCD.locate(1,1); |
| kimberlylie99 | 0:b97c07227845 | 326 | uLCD.printf("What macro are you monitoring? : \n\n1. Carbs\n2. Protein\n3. Fat \n4. Calories \n"); |
| kimberlylie99 | 0:b97c07227845 | 327 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 328 | while(startUp) { |
| kimberlylie99 | 0:b97c07227845 | 329 | if (blue.readable() ){ |
| kimberlylie99 | 0:b97c07227845 | 330 | char v = blue.getc(); |
| kimberlylie99 | 0:b97c07227845 | 331 | if (v == '1') { |
| kimberlylie99 | 0:b97c07227845 | 332 | startUp = 0; |
| kimberlylie99 | 0:b97c07227845 | 333 | macroName = "Carbs"; |
| kimberlylie99 | 0:b97c07227845 | 334 | } else if (v == '2') { |
| kimberlylie99 | 0:b97c07227845 | 335 | startUp = 0; |
| kimberlylie99 | 0:b97c07227845 | 336 | macroName = "Protein"; |
| kimberlylie99 | 0:b97c07227845 | 337 | } else if (v == '3') { |
| kimberlylie99 | 0:b97c07227845 | 338 | startUp = 0; |
| kimberlylie99 | 0:b97c07227845 | 339 | macroName = "Fat"; |
| kimberlylie99 | 0:b97c07227845 | 340 | } else if (v == '4') { |
| kimberlylie99 | 0:b97c07227845 | 341 | startUp = 0; |
| kimberlylie99 | 0:b97c07227845 | 342 | macroName = "Calories"; |
| kimberlylie99 | 0:b97c07227845 | 343 | |
| kimberlylie99 | 0:b97c07227845 | 344 | } |
| kimberlylie99 | 0:b97c07227845 | 345 | } |
| kimberlylie99 | 0:b97c07227845 | 346 | } |
| kimberlylie99 | 0:b97c07227845 | 347 | |
| kimberlylie99 | 0:b97c07227845 | 348 | uLCD.cls(); |
| kimberlylie99 | 0:b97c07227845 | 349 | uLCD.filled_rectangle(0,0,127,127,0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 350 | uLCD.line(0, 9, 127, 9, GREEN); |
| kimberlylie99 | 0:b97c07227845 | 351 | uLCD.filled_rectangle(0,0,127,9,GREEN); |
| kimberlylie99 | 0:b97c07227845 | 352 | uLCD.line(0, 118, 127, 118, GREEN); |
| kimberlylie99 | 0:b97c07227845 | 353 | uLCD.filled_rectangle(0,118,127,127,GREEN); |
| kimberlylie99 | 0:b97c07227845 | 354 | uLCD.textbackground_color(0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 355 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 356 | uLCD.locate(1,2); |
| kimberlylie99 | 0:b97c07227845 | 357 | uLCD.text_height(1); |
| kimberlylie99 | 0:b97c07227845 | 358 | |
| kimberlylie99 | 0:b97c07227845 | 359 | uLCD.printf("What will be your daily limit?\n "); |
| kimberlylie99 | 0:b97c07227845 | 360 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 361 | |
| kimberlylie99 | 0:b97c07227845 | 362 | while (limit) { |
| kimberlylie99 | 0:b97c07227845 | 363 | if (blue.readable()){ |
| kimberlylie99 | 0:b97c07227845 | 364 | char v = blue.getc(); |
| kimberlylie99 | 0:b97c07227845 | 365 | if (v == '!') { |
| kimberlylie99 | 0:b97c07227845 | 366 | limit = 0; |
| kimberlylie99 | 0:b97c07227845 | 367 | } else { |
| kimberlylie99 | 0:b97c07227845 | 368 | daily.push_back(v); |
| kimberlylie99 | 0:b97c07227845 | 369 | uLCD.printf("%c" , v); |
| kimberlylie99 | 0:b97c07227845 | 370 | } |
| kimberlylie99 | 0:b97c07227845 | 371 | } |
| kimberlylie99 | 0:b97c07227845 | 372 | |
| kimberlylie99 | 0:b97c07227845 | 373 | } |
| kimberlylie99 | 0:b97c07227845 | 374 | |
| kimberlylie99 | 0:b97c07227845 | 375 | std::istringstream iss (daily); |
| kimberlylie99 | 0:b97c07227845 | 376 | iss >> dailyLimit; |
| kimberlylie99 | 0:b97c07227845 | 377 | |
| kimberlylie99 | 0:b97c07227845 | 378 | uLCD.cls(); |
| kimberlylie99 | 0:b97c07227845 | 379 | uLCD.filled_rectangle(0,0,127,127,0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 380 | uLCD.line(0, 9, 127, 9, GREEN); |
| kimberlylie99 | 0:b97c07227845 | 381 | uLCD.filled_rectangle(0,0,127,9,GREEN); |
| kimberlylie99 | 0:b97c07227845 | 382 | uLCD.line(0, 118, 127, 118, GREEN); |
| kimberlylie99 | 0:b97c07227845 | 383 | uLCD.filled_rectangle(0,118,127,127,GREEN); |
| kimberlylie99 | 0:b97c07227845 | 384 | uLCD.textbackground_color(0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 385 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 386 | uLCD.text_height(1); |
| kimberlylie99 | 0:b97c07227845 | 387 | uLCD.locate(1,1); |
| kimberlylie99 | 0:b97c07227845 | 388 | uLCD.printf("Please enter date and military time\nMM/DD/YYYY HH:MM:SS)\n"); |
| kimberlylie99 | 0:b97c07227845 | 389 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 390 | |
| kimberlylie99 | 0:b97c07227845 | 391 | while (settingTime) { |
| kimberlylie99 | 0:b97c07227845 | 392 | if (blue.readable()){ |
| kimberlylie99 | 0:b97c07227845 | 393 | char v = blue.getc(); |
| kimberlylie99 | 0:b97c07227845 | 394 | if (v == '!') { |
| kimberlylie99 | 0:b97c07227845 | 395 | settingTime = 0; |
| kimberlylie99 | 0:b97c07227845 | 396 | } else { |
| kimberlylie99 | 0:b97c07227845 | 397 | stringTime.push_back(v); |
| kimberlylie99 | 0:b97c07227845 | 398 | uLCD.printf("%c" , v); |
| kimberlylie99 | 0:b97c07227845 | 399 | } |
| kimberlylie99 | 0:b97c07227845 | 400 | } |
| kimberlylie99 | 0:b97c07227845 | 401 | } |
| kimberlylie99 | 0:b97c07227845 | 402 | |
| kimberlylie99 | 0:b97c07227845 | 403 | // Start of WiFi code |
| kimberlylie99 | 0:b97c07227845 | 404 | reset=0; |
| kimberlylie99 | 0:b97c07227845 | 405 | pc.baud(9600); |
| kimberlylie99 | 0:b97c07227845 | 406 | pc.printf("\f\n\r-------------ESP8266 Hardware Reset-------------\n\r"); |
| kimberlylie99 | 0:b97c07227845 | 407 | wait(0.5); |
| kimberlylie99 | 0:b97c07227845 | 408 | reset=1; |
| kimberlylie99 | 0:b97c07227845 | 409 | ltimeout=2; |
| kimberlylie99 | 0:b97c07227845 | 410 | getreply(); |
| kimberlylie99 | 0:b97c07227845 | 411 | esp.baud(9600); // ESP baud rate |
| kimberlylie99 | 0:b97c07227845 | 412 | ESPconfig(); |
| kimberlylie99 | 0:b97c07227845 | 413 | increment = queryMFP(foodName, macro); |
| kimberlylie99 | 0:b97c07227845 | 414 | |
| kimberlylie99 | 0:b97c07227845 | 415 | // After calling database |
| kimberlylie99 | 0:b97c07227845 | 416 | // TIME |
| kimberlylie99 | 0:b97c07227845 | 417 | // converts epoch time to day, month, year |
| kimberlylie99 | 0:b97c07227845 | 418 | std::istringstream mon (stringTime.substr(0,2)); |
| kimberlylie99 | 0:b97c07227845 | 419 | mon >> month; |
| kimberlylie99 | 0:b97c07227845 | 420 | std::istringstream d (stringTime.substr(3,2)); |
| kimberlylie99 | 0:b97c07227845 | 421 | d >> day; |
| kimberlylie99 | 0:b97c07227845 | 422 | std::istringstream y (stringTime.substr(6,4)); |
| kimberlylie99 | 0:b97c07227845 | 423 | y >> year; |
| kimberlylie99 | 0:b97c07227845 | 424 | std::istringstream h (stringTime.substr(11,2)); |
| kimberlylie99 | 0:b97c07227845 | 425 | h >> hr; |
| kimberlylie99 | 0:b97c07227845 | 426 | std::istringstream m (stringTime.substr(14,2)); |
| kimberlylie99 | 0:b97c07227845 | 427 | m >> mn; |
| kimberlylie99 | 0:b97c07227845 | 428 | std::istringstream sc (stringTime.substr(17,2)); |
| kimberlylie99 | 0:b97c07227845 | 429 | sc >> sec; |
| kimberlylie99 | 0:b97c07227845 | 430 | |
| kimberlylie99 | 0:b97c07227845 | 431 | time_t result = asUnixTime(year, month, day, hr, mn, sec); |
| kimberlylie99 | 0:b97c07227845 | 432 | |
| kimberlylie99 | 0:b97c07227845 | 433 | pc.printf("%s\n",asctime(localtime(&result))); |
| kimberlylie99 | 0:b97c07227845 | 434 | |
| kimberlylie99 | 0:b97c07227845 | 435 | set_time(result); |
| kimberlylie99 | 0:b97c07227845 | 436 | |
| kimberlylie99 | 0:b97c07227845 | 437 | todayIs = asctime(localtime(&result)); |
| kimberlylie99 | 0:b97c07227845 | 438 | todayIs = todayIs.substr(0,3); |
| kimberlylie99 | 0:b97c07227845 | 439 | |
| kimberlylie99 | 0:b97c07227845 | 440 | uLCD.cls(); |
| kimberlylie99 | 0:b97c07227845 | 441 | uLCD.filled_rectangle(0,0,127,127,0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 442 | uLCD.filled_rectangle(15,10,110,90,0x50C878); |
| kimberlylie99 | 0:b97c07227845 | 443 | uLCD.textbackground_color(0x50C878); |
| kimberlylie99 | 0:b97c07227845 | 444 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 445 | uLCD.text_width(2); |
| kimberlylie99 | 0:b97c07227845 | 446 | uLCD.text_height(2); |
| kimberlylie99 | 0:b97c07227845 | 447 | uLCD.locate(2,1); |
| kimberlylie99 | 0:b97c07227845 | 448 | uLCD.printf("Hello!"); |
| kimberlylie99 | 0:b97c07227845 | 449 | uLCD.locate(3,3); |
| kimberlylie99 | 0:b97c07227845 | 450 | uLCD.text_width(1); |
| kimberlylie99 | 0:b97c07227845 | 451 | uLCD.text_height(2); |
| kimberlylie99 | 0:b97c07227845 | 452 | uLCD.printf("%d / %d", howManyToday, dailyLimit); |
| kimberlylie99 | 0:b97c07227845 | 453 | uLCD.color(BLACK); |
| kimberlylie99 | 0:b97c07227845 | 454 | uLCD.textbackground_color(0x86c5da); |
| kimberlylie99 | 0:b97c07227845 | 455 | uLCD.text_width(1); |
| kimberlylie99 | 0:b97c07227845 | 456 | uLCD.text_height(1); |
| kimberlylie99 | 0:b97c07227845 | 457 | uLCD.locate(6,14); |
| kimberlylie99 | 0:b97c07227845 | 458 | uLCD.printf("%s", macroName); |
| kimberlylie99 | 0:b97c07227845 | 459 | |
| kimberlylie99 | 0:b97c07227845 | 460 | pc.baud(9600); |
| kimberlylie99 | 0:b97c07227845 | 461 | mu.startUpdates();//start measuring the distance |
| kimberlylie99 | 0:b97c07227845 | 462 | pb.attach_deasserted(&updateHowManyToday); |
| kimberlylie99 | 0:b97c07227845 | 463 | pb.mode(PullUp); |
| kimberlylie99 | 0:b97c07227845 | 464 | pb.setSampleFrequency(); |
| kimberlylie99 | 0:b97c07227845 | 465 | |
| kimberlylie99 | 0:b97c07227845 | 466 | //checkTime.attach(&updateTime, 10); |
| kimberlylie99 | 0:b97c07227845 | 467 | |
| kimberlylie99 | 0:b97c07227845 | 468 | // PWR MNGT |
| kimberlylie99 | 0:b97c07227845 | 469 | PHY_PowerDown(); |
| kimberlylie99 | 0:b97c07227845 | 470 | //Peripheral_PowerDown(0xFEF6FFCF); |
| kimberlylie99 | 0:b97c07227845 | 471 | Peripheral_PowerDown(LPC1768_PCONP_PCTIM0); // Timer/Counter 0 |
| kimberlylie99 | 0:b97c07227845 | 472 | Peripheral_PowerDown(LPC1768_PCONP_PCTIM1); // Timer/Counter 1 |
| kimberlylie99 | 0:b97c07227845 | 473 | Peripheral_PowerDown(LPC1768_PCONP_PCUART0); //UART 0 |
| kimberlylie99 | 0:b97c07227845 | 474 | Peripheral_PowerDown(LPC1768_PCONP_PCUART1); //UART 1 |
| kimberlylie99 | 0:b97c07227845 | 475 | Peripheral_PowerDown(LPC1768_PCONP_PCPWM1); // PWM |
| kimberlylie99 | 0:b97c07227845 | 476 | Peripheral_PowerDown(LPC1768_PCONP_PCI2C0); //bit 7: I2c interface |
| kimberlylie99 | 0:b97c07227845 | 477 | Peripheral_PowerDown(LPC1768_PCONP_PCSPI); //SPI |
| kimberlylie99 | 0:b97c07227845 | 478 | Peripheral_PowerDown(LPC1768_PCONP_PCRTC); //RTC |
| kimberlylie99 | 0:b97c07227845 | 479 | Peripheral_PowerDown(LPC1768_PCONP_PCSSP1); //SSP |
| kimberlylie99 | 0:b97c07227845 | 480 | |
| kimberlylie99 | 0:b97c07227845 | 481 | // bit 11: Reserved |
| kimberlylie99 | 0:b97c07227845 | 482 | //Peripheral_PowerDown(LPC1768_PCONP_PCADC); // bit12: A/D converter power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 483 | Peripheral_PowerDown(LPC1768_PCONP_PCCAN1); // bit 13: CAN controller 1 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 484 | Peripheral_PowerDown(LPC1768_PCONP_PCCAN2); // bit 14: CAN controller 2 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 485 | |
| kimberlylie99 | 0:b97c07227845 | 486 | // bit 15: PCGPIO: GPIOs power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 487 | //Peripheral_PowerDown(LPC1768_PCONP_PCGPIO); |
| kimberlylie99 | 0:b97c07227845 | 488 | |
| kimberlylie99 | 0:b97c07227845 | 489 | Peripheral_PowerDown(LPC1768_PCONP_PCRIT); //bit 16: Repetitive interrupt timer power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 490 | Peripheral_PowerDown(LPC1768_PCONP_PCMCPWM); // bit 17: Motor control PWM power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 491 | Peripheral_PowerDown(LPC1768_PCONP_PCQEI); // bit 18: Quadrature encoder interface power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 492 | Peripheral_PowerDown(LPC1768_PCONP_PCI2C1); // bit 19: I2C interface 1 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 493 | |
| kimberlylie99 | 0:b97c07227845 | 494 | // bit 20: Reserved |
| kimberlylie99 | 0:b97c07227845 | 495 | Peripheral_PowerDown(LPC1768_PCONP_PCSSP0); // bit 21: PCSSP0: SSP interface 0 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 496 | Peripheral_PowerDown(LPC1768_PCONP_PCTIM2); // bit 22: PCTIM2: Timer 2 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 497 | |
| kimberlylie99 | 0:b97c07227845 | 498 | // bit 23: PCTIM3: Timer 3 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 499 | //Peripheral_PowerDown(LPC1768_PCONP_PCQTIM3); |
| kimberlylie99 | 0:b97c07227845 | 500 | |
| kimberlylie99 | 0:b97c07227845 | 501 | // bit 24: PCUART2: UART 2 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 502 | //Peripheral_PowerDown(LPC1768_PCONP_PCUART2); |
| kimberlylie99 | 0:b97c07227845 | 503 | |
| kimberlylie99 | 0:b97c07227845 | 504 | Peripheral_PowerDown(LPC1768_PCONP_PCUART3); // bit 25: UART 3 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 505 | Peripheral_PowerDown(LPC1768_PCONP_PCI2C2); // bit 26: I2C interface 2 power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 506 | Peripheral_PowerDown(LPC1768_PCONP_PCI2S); // bit 27: PCI2S: I2S interface power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 507 | |
| kimberlylie99 | 0:b97c07227845 | 508 | // bit 28: Reserved |
| kimberlylie99 | 0:b97c07227845 | 509 | Peripheral_PowerDown(LPC1768_PCONP_PCGPDMA); // bit 29:GP DMA function power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 510 | Peripheral_PowerDown(LPC1768_PCONP_PCENET); // bit 30:Ethernet block power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 511 | Peripheral_PowerDown(LPC1768_PCONP_PCUSB); // bit 31: PCUSB: USB interface power/clock enable |
| kimberlylie99 | 0:b97c07227845 | 512 | |
| kimberlylie99 | 0:b97c07227845 | 513 | // only BIT 23, 24, 15 need to be on, but htis ths isnt working |
| kimberlylie99 | 0:b97c07227845 | 514 | //Peripheral_PowerDown(0xFFFEFE7F); |
| kimberlylie99 | 0:b97c07227845 | 515 | //Peripheral_PowerDown(0x7BEEF677); |
| kimberlylie99 | 0:b97c07227845 | 516 | |
| kimberlylie99 | 0:b97c07227845 | 517 | // Sonar code |
| kimberlylie99 | 0:b97c07227845 | 518 | while(1) |
| kimberlylie99 | 0:b97c07227845 | 519 | { |
| kimberlylie99 | 0:b97c07227845 | 520 | //pc.printf("Distance %d mm\r\n", mu.getCurrentDistance()); |
| kimberlylie99 | 0:b97c07227845 | 521 | Sleep(); |
| kimberlylie99 | 0:b97c07227845 | 522 | mu.checkDistance(); //call checkDistance() as much as possible, as this is where |
| kimberlylie99 | 0:b97c07227845 | 523 | //the class checks if dist needs to be called. |
| kimberlylie99 | 0:b97c07227845 | 524 | wait(0.002); |
| kimberlylie99 | 0:b97c07227845 | 525 | } |
| kimberlylie99 | 0:b97c07227845 | 526 | } |
| kimberlylie99 | 0:b97c07227845 | 527 | |
| kimberlylie99 | 0:b97c07227845 | 528 | // --------------------------------------- End Code --------------------------------------- |