for testing
Dependencies: C12832 FXOS8700Q LM75B eCompass_FPU_Lib mbed-rtos mbed
main.cpp@0:091b62984a92, 2016-02-24 (annotated)
- Committer:
- co838_ad543
- Date:
- Wed Feb 24 21:04:12 2016 +0000
- Revision:
- 0:091b62984a92
for testing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
co838_ad543 | 0:091b62984a92 | 1 | /* |
co838_ad543 | 0:091b62984a92 | 2 | * Author - Aruna Duraisingam - ad543 |
co838_ad543 | 0:091b62984a92 | 3 | * Date - 20 Feb 2016 |
co838_ad543 | 0:091b62984a92 | 4 | * The below program is developed beased on IOT assessment 3 requirements. |
co838_ad543 | 0:091b62984a92 | 5 | * The below program reads temperature for ever 5 sesonds |
co838_ad543 | 0:091b62984a92 | 6 | * and when the temperature goes higher than 26 degree celcius the progam shuts down the |
co838_ad543 | 0:091b62984a92 | 7 | * processor for 5 seconds and comes back again. The processor can also be make active when a |
co838_ad543 | 0:091b62984a92 | 8 | * switch is pressed. |
co838_ad543 | 0:091b62984a92 | 9 | */ |
co838_ad543 | 0:091b62984a92 | 10 | |
co838_ad543 | 0:091b62984a92 | 11 | #include "mbed.h" /* stock MBED API */ |
co838_ad543 | 0:091b62984a92 | 12 | #include "LM75B.h" /* Lib for the temperature sensor */ |
co838_ad543 | 0:091b62984a92 | 13 | #include "C12832.h" /* Lib for LCD Display */ |
co838_ad543 | 0:091b62984a92 | 14 | #include "FXOS8700Q.h" /* Lib for on-board Accelerometer/Magnetometer */ |
co838_ad543 | 0:091b62984a92 | 15 | #include "eCompass_Lib.h" |
co838_ad543 | 0:091b62984a92 | 16 | #include "rtos.h" |
co838_ad543 | 0:091b62984a92 | 17 | #include "math.h" |
co838_ad543 | 0:091b62984a92 | 18 | |
co838_ad543 | 0:091b62984a92 | 19 | /**************** Declaration *********************/ |
co838_ad543 | 0:091b62984a92 | 20 | |
co838_ad543 | 0:091b62984a92 | 21 | Serial host (USBTX, USBRX); /* to-host UART via OpenSDAv2 */ |
co838_ad543 | 0:091b62984a92 | 22 | |
co838_ad543 | 0:091b62984a92 | 23 | |
co838_ad543 | 0:091b62984a92 | 24 | LM75B sens_temp (D14, D15); /* temperature sensor */ |
co838_ad543 | 0:091b62984a92 | 25 | PwmOut speaker(D6); /* speaker */ |
co838_ad543 | 0:091b62984a92 | 26 | |
co838_ad543 | 0:091b62984a92 | 27 | DigitalOut led_red(LED_RED); |
co838_ad543 | 0:091b62984a92 | 28 | DigitalOut led_green(LED_GREEN); |
co838_ad543 | 0:091b62984a92 | 29 | C12832 lcd_display (D11, D13, D12, D7, D10); /* LCD on the shield (128x32) */ |
co838_ad543 | 0:091b62984a92 | 30 | Ticker blinker; |
co838_ad543 | 0:091b62984a92 | 31 | AnalogIn pot1 (A0); // Potentiometer |
co838_ad543 | 0:091b62984a92 | 32 | |
co838_ad543 | 0:091b62984a92 | 33 | eCompass compass; |
co838_ad543 | 0:091b62984a92 | 34 | |
co838_ad543 | 0:091b62984a92 | 35 | |
co838_ad543 | 0:091b62984a92 | 36 | // JoyStick |
co838_ad543 | 0:091b62984a92 | 37 | DigitalIn up(A2); |
co838_ad543 | 0:091b62984a92 | 38 | DigitalIn down(A3); |
co838_ad543 | 0:091b62984a92 | 39 | DigitalIn left(A4); |
co838_ad543 | 0:091b62984a92 | 40 | DigitalIn right(A5); |
co838_ad543 | 0:091b62984a92 | 41 | |
co838_ad543 | 0:091b62984a92 | 42 | //Accelerometer/magnetometer |
co838_ad543 | 0:091b62984a92 | 43 | |
co838_ad543 | 0:091b62984a92 | 44 | I2C i2c(PTE25, PTE24); |
co838_ad543 | 0:091b62984a92 | 45 | //FXOS8700Q fxos(i2c, FXOS8700CQ_SLAVE_ADDR1); |
co838_ad543 | 0:091b62984a92 | 46 | FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR1); // Configured for the FRDM-K64F with onboard sensors |
co838_ad543 | 0:091b62984a92 | 47 | FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR1); |
co838_ad543 | 0:091b62984a92 | 48 | |
co838_ad543 | 0:091b62984a92 | 49 | extern axis6_t axis6; |
co838_ad543 | 0:091b62984a92 | 50 | |
co838_ad543 | 0:091b62984a92 | 51 | MotionSensorDataCounts mag_raw; |
co838_ad543 | 0:091b62984a92 | 52 | MotionSensorDataCounts acc_raw; |
co838_ad543 | 0:091b62984a92 | 53 | |
co838_ad543 | 0:091b62984a92 | 54 | InterruptIn wakeup_switch (PTC6); /* interrupts for the two on-board switches */ |
co838_ad543 | 0:091b62984a92 | 55 | InterruptIn temp_conversion_switch (PTA4); |
co838_ad543 | 0:091b62984a92 | 56 | |
co838_ad543 | 0:091b62984a92 | 57 | /* option trigger/flag (integer value) . possible values 1,2,3 - what to display in LCD |
co838_ad543 | 0:091b62984a92 | 58 | option 1 - read temperature and display in LCD in celcius/fareinheit |
co838_ad543 | 0:091b62984a92 | 59 | option 2 - Simple ball game using accelerometer reading |
co838_ad543 | 0:091b62984a92 | 60 | option 3 - Magentometer showing direction. |
co838_ad543 | 0:091b62984a92 | 61 | */ |
co838_ad543 | 0:091b62984a92 | 62 | static volatile int joystick_option_flag; |
co838_ad543 | 0:091b62984a92 | 63 | |
co838_ad543 | 0:091b62984a92 | 64 | |
co838_ad543 | 0:091b62984a92 | 65 | static volatile int temp_conversion_switch_trig; /* 0- gives reading in celcius and 1 in farenheit.*/ |
co838_ad543 | 0:091b62984a92 | 66 | |
co838_ad543 | 0:091b62984a92 | 67 | static volatile float threshold_temperature = 29.0; /* given in degree celcius*/ |
co838_ad543 | 0:091b62984a92 | 68 | static volatile bool isActive = true; |
co838_ad543 | 0:091b62984a92 | 69 | static volatile bool activate_blink = false; |
co838_ad543 | 0:091b62984a92 | 70 | |
co838_ad543 | 0:091b62984a92 | 71 | // login |
co838_ad543 | 0:091b62984a92 | 72 | static char username[10] ; |
co838_ad543 | 0:091b62984a92 | 73 | static char password[10] ; |
co838_ad543 | 0:091b62984a92 | 74 | static char * tempstring ; |
co838_ad543 | 0:091b62984a92 | 75 | static bool validateUser = false; |
co838_ad543 | 0:091b62984a92 | 76 | |
co838_ad543 | 0:091b62984a92 | 77 | /*****************************Methods***************************/ |
co838_ad543 | 0:091b62984a92 | 78 | |
co838_ad543 | 0:091b62984a92 | 79 | void hal_map( MotionSensorDataCounts * acc_raw, MotionSensorDataCounts * mag_raw) |
co838_ad543 | 0:091b62984a92 | 80 | { |
co838_ad543 | 0:091b62984a92 | 81 | int16_t t; |
co838_ad543 | 0:091b62984a92 | 82 | // swap and negate X & Y axis |
co838_ad543 | 0:091b62984a92 | 83 | t = acc_raw->x; |
co838_ad543 | 0:091b62984a92 | 84 | acc_raw->x = acc_raw->y * -1; |
co838_ad543 | 0:091b62984a92 | 85 | acc_raw->y = t * -1; |
co838_ad543 | 0:091b62984a92 | 86 | // swap mag X & Y axis |
co838_ad543 | 0:091b62984a92 | 87 | t = mag_raw->x; |
co838_ad543 | 0:091b62984a92 | 88 | mag_raw->x = mag_raw->y; |
co838_ad543 | 0:091b62984a92 | 89 | mag_raw->y = t; |
co838_ad543 | 0:091b62984a92 | 90 | // negate mag Z axis |
co838_ad543 | 0:091b62984a92 | 91 | mag_raw->z *= -1; |
co838_ad543 | 0:091b62984a92 | 92 | } |
co838_ad543 | 0:091b62984a92 | 93 | |
co838_ad543 | 0:091b62984a92 | 94 | //Toggles the temperature conversion switch trigger |
co838_ad543 | 0:091b62984a92 | 95 | void conversion_switch_interrupt (void) |
co838_ad543 | 0:091b62984a92 | 96 | { |
co838_ad543 | 0:091b62984a92 | 97 | temp_conversion_switch_trig = !temp_conversion_switch_trig; |
co838_ad543 | 0:091b62984a92 | 98 | } |
co838_ad543 | 0:091b62984a92 | 99 | |
co838_ad543 | 0:091b62984a92 | 100 | // reactivate the processor and starts execution |
co838_ad543 | 0:091b62984a92 | 101 | void wakeup_switch_interrupt (void) |
co838_ad543 | 0:091b62984a92 | 102 | { |
co838_ad543 | 0:091b62984a92 | 103 | led_green=1; |
co838_ad543 | 0:091b62984a92 | 104 | activate_blink = false; |
co838_ad543 | 0:091b62984a92 | 105 | isActive = true; |
co838_ad543 | 0:091b62984a92 | 106 | lcd_display.cls(); |
co838_ad543 | 0:091b62984a92 | 107 | } |
co838_ad543 | 0:091b62984a92 | 108 | |
co838_ad543 | 0:091b62984a92 | 109 | // When the temperature is above threshold limit, it sets an alaram for 3 seconds and sleep |
co838_ad543 | 0:091b62984a92 | 110 | void setAlarm (void) |
co838_ad543 | 0:091b62984a92 | 111 | { |
co838_ad543 | 0:091b62984a92 | 112 | led_red = 0; |
co838_ad543 | 0:091b62984a92 | 113 | speaker.period(1.0/500.0); // 500hz period |
co838_ad543 | 0:091b62984a92 | 114 | speaker =0.5; //50% duty cycle - max volume |
co838_ad543 | 0:091b62984a92 | 115 | wait(1.5f); |
co838_ad543 | 0:091b62984a92 | 116 | speaker=0.0; // turn off audio |
co838_ad543 | 0:091b62984a92 | 117 | led_red = !led_red; // toggle a led |
co838_ad543 | 0:091b62984a92 | 118 | } |
co838_ad543 | 0:091b62984a92 | 119 | |
co838_ad543 | 0:091b62984a92 | 120 | void makeProcessorSleep(void){ |
co838_ad543 | 0:091b62984a92 | 121 | isActive = false; |
co838_ad543 | 0:091b62984a92 | 122 | activate_blink = true; |
co838_ad543 | 0:091b62984a92 | 123 | sleep(); |
co838_ad543 | 0:091b62984a92 | 124 | } |
co838_ad543 | 0:091b62984a92 | 125 | |
co838_ad543 | 0:091b62984a92 | 126 | void blink() { |
co838_ad543 | 0:091b62984a92 | 127 | if(activate_blink) |
co838_ad543 | 0:091b62984a92 | 128 | led_green=!led_green; |
co838_ad543 | 0:091b62984a92 | 129 | } |
co838_ad543 | 0:091b62984a92 | 130 | |
co838_ad543 | 0:091b62984a92 | 131 | void initialize() { |
co838_ad543 | 0:091b62984a92 | 132 | |
co838_ad543 | 0:091b62984a92 | 133 | temp_conversion_switch_trig =1; |
co838_ad543 | 0:091b62984a92 | 134 | joystick_option_flag = 1; // intially |
co838_ad543 | 0:091b62984a92 | 135 | led_red = 1; |
co838_ad543 | 0:091b62984a92 | 136 | led_green = 1; |
co838_ad543 | 0:091b62984a92 | 137 | } |
co838_ad543 | 0:091b62984a92 | 138 | |
co838_ad543 | 0:091b62984a92 | 139 | void displayTemperature(float temp) |
co838_ad543 | 0:091b62984a92 | 140 | { |
co838_ad543 | 0:091b62984a92 | 141 | if (temp_conversion_switch_trig) { |
co838_ad543 | 0:091b62984a92 | 142 | lcd_display.printf ("Temperature %.2f C", temp); |
co838_ad543 | 0:091b62984a92 | 143 | } |
co838_ad543 | 0:091b62984a92 | 144 | else{ |
co838_ad543 | 0:091b62984a92 | 145 | float f = (temp*9/5)+32; |
co838_ad543 | 0:091b62984a92 | 146 | lcd_display.printf ("Temperature %.2f F", f); |
co838_ad543 | 0:091b62984a92 | 147 | } |
co838_ad543 | 0:091b62984a92 | 148 | } |
co838_ad543 | 0:091b62984a92 | 149 | |
co838_ad543 | 0:091b62984a92 | 150 | void displayGame(void) |
co838_ad543 | 0:091b62984a92 | 151 | { |
co838_ad543 | 0:091b62984a92 | 152 | |
co838_ad543 | 0:091b62984a92 | 153 | } |
co838_ad543 | 0:091b62984a92 | 154 | |
co838_ad543 | 0:091b62984a92 | 155 | void displayDirection(void) |
co838_ad543 | 0:091b62984a92 | 156 | { |
co838_ad543 | 0:091b62984a92 | 157 | lcd_display.cls(); |
co838_ad543 | 0:091b62984a92 | 158 | acc.getAxis( acc_raw); |
co838_ad543 | 0:091b62984a92 | 159 | mag.getAxis( mag_raw); |
co838_ad543 | 0:091b62984a92 | 160 | compass.run( acc_raw, mag_raw); // calculate the eCompass |
co838_ad543 | 0:091b62984a92 | 161 | int yaw =axis6.yaw; |
co838_ad543 | 0:091b62984a92 | 162 | |
co838_ad543 | 0:091b62984a92 | 163 | if((yaw >=338 && yaw <360) || (yaw>=0 && yaw < 23)) lcd_display.printf("%d degree North\r\n", yaw); |
co838_ad543 | 0:091b62984a92 | 164 | else if((yaw >=24 && yaw <67)) lcd_display.printf("%d degree Nort East", yaw); |
co838_ad543 | 0:091b62984a92 | 165 | else if((yaw >=68 && yaw <112)) lcd_display.printf("%d degree East", yaw); |
co838_ad543 | 0:091b62984a92 | 166 | else if(yaw >=113 && yaw <158) lcd_display.printf("%d degree South East", yaw); |
co838_ad543 | 0:091b62984a92 | 167 | else if(yaw >=159 && yaw <203) lcd_display.printf("%d degree South", yaw); |
co838_ad543 | 0:091b62984a92 | 168 | else if(yaw >=204 && yaw <247) lcd_display.printf("%d degree South West", yaw); |
co838_ad543 | 0:091b62984a92 | 169 | else if(yaw >=248 && yaw <292) lcd_display.printf("%d degree West", yaw); |
co838_ad543 | 0:091b62984a92 | 170 | else lcd_display.printf("%d degree North West\r\n", yaw); |
co838_ad543 | 0:091b62984a92 | 171 | } |
co838_ad543 | 0:091b62984a92 | 172 | |
co838_ad543 | 0:091b62984a92 | 173 | |
co838_ad543 | 0:091b62984a92 | 174 | char* readString(void){ |
co838_ad543 | 0:091b62984a92 | 175 | tempstring = (char*) malloc(10 * sizeof(char)); |
co838_ad543 | 0:091b62984a92 | 176 | int i =0; |
co838_ad543 | 0:091b62984a92 | 177 | bool status = true; |
co838_ad543 | 0:091b62984a92 | 178 | while(status) { |
co838_ad543 | 0:091b62984a92 | 179 | char ch = host.getc(); |
co838_ad543 | 0:091b62984a92 | 180 | if(ch != '\r') |
co838_ad543 | 0:091b62984a92 | 181 | { |
co838_ad543 | 0:091b62984a92 | 182 | lcd_display.printf("%c", ch); |
co838_ad543 | 0:091b62984a92 | 183 | tempstring[i]= ch; |
co838_ad543 | 0:091b62984a92 | 184 | i++; |
co838_ad543 | 0:091b62984a92 | 185 | } |
co838_ad543 | 0:091b62984a92 | 186 | else |
co838_ad543 | 0:091b62984a92 | 187 | { |
co838_ad543 | 0:091b62984a92 | 188 | //lcd_display.printf("Entered enter!"); |
co838_ad543 | 0:091b62984a92 | 189 | printf("\n"); |
co838_ad543 | 0:091b62984a92 | 190 | status =false; |
co838_ad543 | 0:091b62984a92 | 191 | } |
co838_ad543 | 0:091b62984a92 | 192 | |
co838_ad543 | 0:091b62984a92 | 193 | |
co838_ad543 | 0:091b62984a92 | 194 | } |
co838_ad543 | 0:091b62984a92 | 195 | |
co838_ad543 | 0:091b62984a92 | 196 | tempstring[i] = '\0'; |
co838_ad543 | 0:091b62984a92 | 197 | return tempstring; |
co838_ad543 | 0:091b62984a92 | 198 | } |
co838_ad543 | 0:091b62984a92 | 199 | |
co838_ad543 | 0:091b62984a92 | 200 | void getUserNameText(void){ |
co838_ad543 | 0:091b62984a92 | 201 | host.printf("Please enter username (Max 10 characters): \r\n"); |
co838_ad543 | 0:091b62984a92 | 202 | strcpy(username , readString()); |
co838_ad543 | 0:091b62984a92 | 203 | } |
co838_ad543 | 0:091b62984a92 | 204 | |
co838_ad543 | 0:091b62984a92 | 205 | void login(void){ |
co838_ad543 | 0:091b62984a92 | 206 | |
co838_ad543 | 0:091b62984a92 | 207 | host.printf("Please enter username (Max 10 characters): \r\n"); |
co838_ad543 | 0:091b62984a92 | 208 | strcpy(username , readString()); |
co838_ad543 | 0:091b62984a92 | 209 | |
co838_ad543 | 0:091b62984a92 | 210 | |
co838_ad543 | 0:091b62984a92 | 211 | host.printf("Please enter password (Max 10 Characters):\r\n"); |
co838_ad543 | 0:091b62984a92 | 212 | strcpy(password , readString()); |
co838_ad543 | 0:091b62984a92 | 213 | |
co838_ad543 | 0:091b62984a92 | 214 | host.printf("Username :%s , Password : %s \r\n", username, password); |
co838_ad543 | 0:091b62984a92 | 215 | } |
co838_ad543 | 0:091b62984a92 | 216 | |
co838_ad543 | 0:091b62984a92 | 217 | /************** Start - Main Method **************************/ |
co838_ad543 | 0:091b62984a92 | 218 | int main (void) |
co838_ad543 | 0:091b62984a92 | 219 | { |
co838_ad543 | 0:091b62984a92 | 220 | host.baud (38400); |
co838_ad543 | 0:091b62984a92 | 221 | login(); |
co838_ad543 | 0:091b62984a92 | 222 | |
co838_ad543 | 0:091b62984a92 | 223 | if(strcmp (username,"default") == 0 && strcmp (password,"default") == 0) |
co838_ad543 | 0:091b62984a92 | 224 | { |
co838_ad543 | 0:091b62984a92 | 225 | validateUser = true; |
co838_ad543 | 0:091b62984a92 | 226 | free(username); |
co838_ad543 | 0:091b62984a92 | 227 | free(password); |
co838_ad543 | 0:091b62984a92 | 228 | } |
co838_ad543 | 0:091b62984a92 | 229 | else{ |
co838_ad543 | 0:091b62984a92 | 230 | host.printf("Invalid login\r\n"); |
co838_ad543 | 0:091b62984a92 | 231 | login(); |
co838_ad543 | 0:091b62984a92 | 232 | } |
co838_ad543 | 0:091b62984a92 | 233 | |
co838_ad543 | 0:091b62984a92 | 234 | initialize(); |
co838_ad543 | 0:091b62984a92 | 235 | |
co838_ad543 | 0:091b62984a92 | 236 | wakeup_switch.mode (PullUp); |
co838_ad543 | 0:091b62984a92 | 237 | wakeup_switch.fall (&wakeup_switch_interrupt); |
co838_ad543 | 0:091b62984a92 | 238 | |
co838_ad543 | 0:091b62984a92 | 239 | temp_conversion_switch.mode (PullUp); |
co838_ad543 | 0:091b62984a92 | 240 | temp_conversion_switch.fall (&conversion_switch_interrupt); |
co838_ad543 | 0:091b62984a92 | 241 | |
co838_ad543 | 0:091b62984a92 | 242 | up.mode(PullUp); |
co838_ad543 | 0:091b62984a92 | 243 | left.mode(PullUp); |
co838_ad543 | 0:091b62984a92 | 244 | right.mode(PullUp); |
co838_ad543 | 0:091b62984a92 | 245 | down.mode(PullUp); |
co838_ad543 | 0:091b62984a92 | 246 | |
co838_ad543 | 0:091b62984a92 | 247 | blinker.attach(&blink, 1); |
co838_ad543 | 0:091b62984a92 | 248 | |
co838_ad543 | 0:091b62984a92 | 249 | acc.enable(); |
co838_ad543 | 0:091b62984a92 | 250 | mag.enable(); |
co838_ad543 | 0:091b62984a92 | 251 | |
co838_ad543 | 0:091b62984a92 | 252 | acc.getAxis( acc_raw); |
co838_ad543 | 0:091b62984a92 | 253 | mag.getAxis( mag_raw); |
co838_ad543 | 0:091b62984a92 | 254 | |
co838_ad543 | 0:091b62984a92 | 255 | while(isActive){ |
co838_ad543 | 0:091b62984a92 | 256 | host.printf ("validateUser %d", validateUser); |
co838_ad543 | 0:091b62984a92 | 257 | if(!validateUser) sleep(); |
co838_ad543 | 0:091b62984a92 | 258 | else{ |
co838_ad543 | 0:091b62984a92 | 259 | lcd_display.locate (1, 10); |
co838_ad543 | 0:091b62984a92 | 260 | lcd_display.cls(); |
co838_ad543 | 0:091b62984a92 | 261 | |
co838_ad543 | 0:091b62984a92 | 262 | float curr_temp = sens_temp.read (); |
co838_ad543 | 0:091b62984a92 | 263 | |
co838_ad543 | 0:091b62984a92 | 264 | if(up) joystick_option_flag = 1; |
co838_ad543 | 0:091b62984a92 | 265 | else if(left)joystick_option_flag = 2; |
co838_ad543 | 0:091b62984a92 | 266 | else if(right)joystick_option_flag = 3; |
co838_ad543 | 0:091b62984a92 | 267 | |
co838_ad543 | 0:091b62984a92 | 268 | host.printf ("option joystick: %d \r\n", joystick_option_flag); |
co838_ad543 | 0:091b62984a92 | 269 | |
co838_ad543 | 0:091b62984a92 | 270 | switch (joystick_option_flag) { |
co838_ad543 | 0:091b62984a92 | 271 | case 1: |
co838_ad543 | 0:091b62984a92 | 272 | displayTemperature(curr_temp); |
co838_ad543 | 0:091b62984a92 | 273 | break; |
co838_ad543 | 0:091b62984a92 | 274 | case 2: |
co838_ad543 | 0:091b62984a92 | 275 | displayGame(); |
co838_ad543 | 0:091b62984a92 | 276 | break; |
co838_ad543 | 0:091b62984a92 | 277 | case 3: |
co838_ad543 | 0:091b62984a92 | 278 | displayDirection(); |
co838_ad543 | 0:091b62984a92 | 279 | break; |
co838_ad543 | 0:091b62984a92 | 280 | default: |
co838_ad543 | 0:091b62984a92 | 281 | displayTemperature(curr_temp); |
co838_ad543 | 0:091b62984a92 | 282 | } |
co838_ad543 | 0:091b62984a92 | 283 | |
co838_ad543 | 0:091b62984a92 | 284 | if(curr_temp > threshold_temperature) |
co838_ad543 | 0:091b62984a92 | 285 | { |
co838_ad543 | 0:091b62984a92 | 286 | setAlarm(); |
co838_ad543 | 0:091b62984a92 | 287 | lcd_display.printf ("In Sleep Mode. Temperature: %.2f C\r\n", curr_temp); |
co838_ad543 | 0:091b62984a92 | 288 | makeProcessorSleep(); |
co838_ad543 | 0:091b62984a92 | 289 | } |
co838_ad543 | 0:091b62984a92 | 290 | |
co838_ad543 | 0:091b62984a92 | 291 | wait (1.0f); |
co838_ad543 | 0:091b62984a92 | 292 | } |
co838_ad543 | 0:091b62984a92 | 293 | } |
co838_ad543 | 0:091b62984a92 | 294 | } |