software opt

Dependencies:   Hexi_KW40Z Hexi_OLED_SSD1351

Fork of Hexi_BLE_Time by Adam S

Committer:
nrithya
Date:
Thu Jun 14 00:46:35 2018 +0000
Revision:
12:b92c39b2c92a
Parent:
11:6776aca68628
software optimization

Who changed what in which revision?

UserRevisionLine numberNew contents of line
khuang 0:c80666325948 1 #include "mbed.h"
khuang 0:c80666325948 2 #include "Hexi_KW40Z.h"
khuang 0:c80666325948 3 #include "Hexi_OLED_SSD1351.h"
khuang 0:c80666325948 4 #include "OLED_types.h"
khuang 0:c80666325948 5 #include "OpenSans_Font.h"
khuang 0:c80666325948 6 #include "string.h"
astamb 5:0076f669169f 7 #include "time.h"
astamb 9:c8e4e6d4cdd0 8 #include <sstream>
astamb 9:c8e4e6d4cdd0 9
khuang 0:c80666325948 10
khuang 0:c80666325948 11 #define LED_ON 0
khuang 0:c80666325948 12 #define LED_OFF 1
cotigac 3:c2ab3a0de448 13
khuang 0:c80666325948 14 void StartHaptic(void);
khuang 0:c80666325948 15 void StopHaptic(void const *n);
astamb 9:c8e4e6d4cdd0 16 void resetBLE(void);
astamb 9:c8e4e6d4cdd0 17 void displayTime(void);
astamb 11:6776aca68628 18 void update_clock(void);
khuang 0:c80666325948 19
xihan94 4:20d4eebfa986 20 Serial pc(USBTX, USBRX);
xihan94 4:20d4eebfa986 21
khuang 0:c80666325948 22 DigitalOut redLed(LED1,1);
khuang 0:c80666325948 23 DigitalOut greenLed(LED2,1);
khuang 0:c80666325948 24 DigitalOut blueLed(LED3,1);
khuang 0:c80666325948 25 DigitalOut haptic(PTB9);
khuang 0:c80666325948 26
khuang 0:c80666325948 27 /* Define timer for haptic feedback */
khuang 0:c80666325948 28 RtosTimer hapticTimer(StopHaptic, osTimerOnce);
khuang 0:c80666325948 29
khuang 0:c80666325948 30 /* Instantiate the Hexi KW40Z Driver (UART TX, UART RX) */
khuang 0:c80666325948 31 KW40Z kw40z_device(PTE24, PTE25);
khuang 0:c80666325948 32
khuang 0:c80666325948 33 /* Instantiate the SSD1351 OLED Driver */
khuang 0:c80666325948 34 SSD1351 oled(PTB22,PTB21,PTC13,PTB20,PTE6, PTD15); /* (MOSI,SCLK,POWER,CS,RST,DC) */
khuang 0:c80666325948 35
khuang 1:a0d9eeedb771 36 /*Create a Thread to handle sending BLE Sensor Data */
nrithya 12:b92c39b2c92a 37 //Thread txThread;
nrithya 12:b92c39b2c92a 38 //Thread broadcastThread;
nrithya 12:b92c39b2c92a 39 //Thread resetBLE_Thread;
astamb 9:c8e4e6d4cdd0 40 Thread displayTime_Thread;
astamb 11:6776aca68628 41 Thread update_clock_Thread;
astamb 9:c8e4e6d4cdd0 42
astamb 9:c8e4e6d4cdd0 43 /*Create a Timer to reset BLE */
astamb 9:c8e4e6d4cdd0 44 Timer BLE_clock;
astamb 11:6776aca68628 45 Timer t;
khuang 0:c80666325948 46
khuang 1:a0d9eeedb771 47 /* Text Buffer */
khuang 1:a0d9eeedb771 48 char text[20];
astamb 5:0076f669169f 49 char time_text[20];
astamb 5:0076f669169f 50 char date_text[25];
khuang 1:a0d9eeedb771 51
cotigac 3:c2ab3a0de448 52 uint8_t battery = 100;
cotigac 3:c2ab3a0de448 53 uint8_t light = 0;
cotigac 3:c2ab3a0de448 54 uint16_t humidity = 4500;
cotigac 3:c2ab3a0de448 55 uint16_t temperature = 2000;
cotigac 3:c2ab3a0de448 56 uint16_t pressure = 9000;
cotigac 3:c2ab3a0de448 57 uint16_t x = 0;
cotigac 3:c2ab3a0de448 58 uint16_t y = 5000;
cotigac 3:c2ab3a0de448 59 uint16_t z = 10000;
cotigac 3:c2ab3a0de448 60
astamb 9:c8e4e6d4cdd0 61 float current_time;
astamb 11:6776aca68628 62 char token1[15];
astamb 9:c8e4e6d4cdd0 63 float alert_time = 0;
astamb 9:c8e4e6d4cdd0 64 double float_time = 1528686283;
astamb 9:c8e4e6d4cdd0 65 char buffer[16];
astamb 9:c8e4e6d4cdd0 66 int new_reading = 0;
astamb 9:c8e4e6d4cdd0 67 int BLE_status = 0;
astamb 9:c8e4e6d4cdd0 68 char time_buffer[30];
astamb 9:c8e4e6d4cdd0 69 char *smallbuff;
astamb 9:c8e4e6d4cdd0 70 std::time_t timeinfo;
astamb 9:c8e4e6d4cdd0 71 int LA_GMT = 25200;
astamb 9:c8e4e6d4cdd0 72 int second_dec = 0;
astamb 9:c8e4e6d4cdd0 73 int second_1d = 0;
astamb 9:c8e4e6d4cdd0 74 int second_2d = 0;
astamb 9:c8e4e6d4cdd0 75 int minute_1d = 0;
astamb 9:c8e4e6d4cdd0 76 int minute_2d = 0;
astamb 9:c8e4e6d4cdd0 77 int hour_1d = 0;
astamb 9:c8e4e6d4cdd0 78 int hour_2d = 0;
astamb 9:c8e4e6d4cdd0 79 char newtime_text[10];
astamb 9:c8e4e6d4cdd0 80 char *token[10];
astamb 11:6776aca68628 81 int int_time = float_time - LA_GMT;
astamb 9:c8e4e6d4cdd0 82
khuang 1:a0d9eeedb771 83 /****************************Call Back Functions*******************************/
astamb 5:0076f669169f 84
astamb 5:0076f669169f 85
khuang 0:c80666325948 86 void ButtonRight(void)
khuang 0:c80666325948 87 {
khuang 0:c80666325948 88 StartHaptic();
khuang 0:c80666325948 89 kw40z_device.ToggleAdvertisementMode();
khuang 0:c80666325948 90 }
khuang 0:c80666325948 91
khuang 0:c80666325948 92 void ButtonLeft(void)
khuang 0:c80666325948 93 {
khuang 0:c80666325948 94 StartHaptic();
khuang 0:c80666325948 95 kw40z_device.ToggleAdvertisementMode();
astamb 5:0076f669169f 96
khuang 0:c80666325948 97 }
khuang 0:c80666325948 98
astamb 5:0076f669169f 99
khuang 0:c80666325948 100 void PassKey(void)
khuang 0:c80666325948 101 {
khuang 0:c80666325948 102 StartHaptic();
khuang 0:c80666325948 103 strcpy((char *) text,"PAIR CODE");
khuang 1:a0d9eeedb771 104 oled.TextBox((uint8_t *)text,0,25,95,18);
khuang 0:c80666325948 105
khuang 0:c80666325948 106 /* Display Bond Pass Key in a 95px by 18px textbox at x=0,y=40 */
khuang 0:c80666325948 107 sprintf(text,"%d", kw40z_device.GetPassKey());
khuang 0:c80666325948 108 oled.TextBox((uint8_t *)text,0,40,95,18);
khuang 0:c80666325948 109 }
khuang 1:a0d9eeedb771 110
xihan94 4:20d4eebfa986 111 // Key modification: use the alert functionality enabled by the host-ble interface
xihan94 4:20d4eebfa986 112 // to define our own command.
xihan94 4:20d4eebfa986 113 void AlertReceived(uint8_t *data, uint8_t length)
xihan94 4:20d4eebfa986 114 {
astamb 9:c8e4e6d4cdd0 115 redLed = !redLed;
astamb 9:c8e4e6d4cdd0 116 alert_time = BLE_clock.read();
astamb 9:c8e4e6d4cdd0 117
astamb 9:c8e4e6d4cdd0 118 /*
astamb 9:c8e4e6d4cdd0 119 data[17] = 0;
astamb 9:c8e4e6d4cdd0 120 data[18] = 0;
xihan94 4:20d4eebfa986 121 data[19] = 0;
astamb 9:c8e4e6d4cdd0 122 data[20] = 0;
astamb 9:c8e4e6d4cdd0 123 */
astamb 9:c8e4e6d4cdd0 124 // pc.printf("%s\r\n", data);
astamb 9:c8e4e6d4cdd0 125 // pc.printf("%i\r\n", data);
xihan94 4:20d4eebfa986 126
astamb 9:c8e4e6d4cdd0 127 sprintf(buffer, "%s", data);
astamb 9:c8e4e6d4cdd0 128 sscanf(buffer, "%lf", &float_time);
astamb 9:c8e4e6d4cdd0 129 // pc.printf("%s\r\n", Result);
astamb 9:c8e4e6d4cdd0 130 redLed = !redLed;
astamb 11:6776aca68628 131
astamb 11:6776aca68628 132 int_time = float_time - LA_GMT;
astamb 11:6776aca68628 133
astamb 11:6776aca68628 134 time_t timeinfo =(time_t) int_time;
astamb 11:6776aca68628 135 timeinfo=(time_t)int_time;
astamb 11:6776aca68628 136 sprintf(buffer,"%s",ctime(&timeinfo));
astamb 11:6776aca68628 137
astamb 11:6776aca68628 138 token[0] = strtok(buffer, " ");
astamb 11:6776aca68628 139
astamb 11:6776aca68628 140 // Keep printing tokens while one of the
astamb 11:6776aca68628 141 // delimiters present in str[].
astamb 11:6776aca68628 142 int i=0;
astamb 11:6776aca68628 143 while (token[i] != NULL) {
astamb 11:6776aca68628 144 // printf("[%d] %s\r\n", i, token[i]);
astamb 11:6776aca68628 145 i++;
astamb 11:6776aca68628 146 token[i] = strtok(NULL, " ");
astamb 11:6776aca68628 147 }
astamb 11:6776aca68628 148
astamb 11:6776aca68628 149
astamb 11:6776aca68628 150
astamb 9:c8e4e6d4cdd0 151 new_reading = 1;
astamb 9:c8e4e6d4cdd0 152
astamb 9:c8e4e6d4cdd0 153
astamb 9:c8e4e6d4cdd0 154
astamb 9:c8e4e6d4cdd0 155 /*
astamb 6:ae8a23b0735b 156 if (data) {
astamb 6:ae8a23b0735b 157 blueLed = LED_OFF;
astamb 6:ae8a23b0735b 158 greenLed = LED_ON;
astamb 6:ae8a23b0735b 159 wait_ms(1000);
astamb 6:ae8a23b0735b 160 greenLed = LED_OFF;
astamb 6:ae8a23b0735b 161 blueLed = LED_ON;
astamb 6:ae8a23b0735b 162 }
astamb 9:c8e4e6d4cdd0 163 */
astamb 6:ae8a23b0735b 164
astamb 6:ae8a23b0735b 165 /*
xihan94 4:20d4eebfa986 166 // data (our command) must 20 bytes long.
xihan94 4:20d4eebfa986 167 // CMD for turning on: 'ledonledonledonledon'
xihan94 4:20d4eebfa986 168 if (data[4] == 'n') {
xihan94 4:20d4eebfa986 169 greenLed = LED_ON;
xihan94 4:20d4eebfa986 170 redLed = LED_ON;
xihan94 4:20d4eebfa986 171 blueLed = LED_ON;
xihan94 4:20d4eebfa986 172 pc.printf("on\n\r", data);
xihan94 4:20d4eebfa986 173
xihan94 4:20d4eebfa986 174 // CMD for turning off: 'ledoffledoffledoffled'
xihan94 4:20d4eebfa986 175 } else if (data[4] == 'f') {
xihan94 4:20d4eebfa986 176 greenLed = LED_OFF;
xihan94 4:20d4eebfa986 177 redLed = LED_OFF;
xihan94 4:20d4eebfa986 178 blueLed = LED_OFF;
xihan94 4:20d4eebfa986 179 pc.printf("off\n\r", data);
xihan94 4:20d4eebfa986 180 }
astamb 6:ae8a23b0735b 181 */
astamb 5:0076f669169f 182
xihan94 4:20d4eebfa986 183 }
khuang 1:a0d9eeedb771 184 /***********************End of Call Back Functions*****************************/
khuang 1:a0d9eeedb771 185
khuang 1:a0d9eeedb771 186 /********************************Main******************************************/
khuang 1:a0d9eeedb771 187
khuang 0:c80666325948 188 int main()
khuang 0:c80666325948 189 {
cotigac 3:c2ab3a0de448 190 /* Register callbacks to application functions */
cotigac 3:c2ab3a0de448 191 kw40z_device.attach_buttonLeft(&ButtonLeft);
cotigac 3:c2ab3a0de448 192 kw40z_device.attach_buttonRight(&ButtonRight);
cotigac 3:c2ab3a0de448 193 kw40z_device.attach_passkey(&PassKey);
xihan94 4:20d4eebfa986 194 kw40z_device.attach_alert(&AlertReceived);
astamb 5:0076f669169f 195
astamb 5:0076f669169f 196
nrithya 12:b92c39b2c92a 197 //pc.printf("hello\n\r");
xihan94 4:20d4eebfa986 198
khuang 0:c80666325948 199 /* Turn on the backlight of the OLED Display */
khuang 0:c80666325948 200 oled.DimScreenON();
khuang 0:c80666325948 201
khuang 0:c80666325948 202 /* Fills the screen with solid black */
khuang 0:c80666325948 203 oled.FillScreen(COLOR_BLACK);
cotigac 3:c2ab3a0de448 204
cotigac 3:c2ab3a0de448 205 /* Get OLED Class Default Text Properties */
cotigac 3:c2ab3a0de448 206 oled_text_properties_t textProperties = {0};
cotigac 3:c2ab3a0de448 207 oled.GetTextProperties(&textProperties);
khuang 0:c80666325948 208
khuang 0:c80666325948 209 /* Change font color to Blue */
khuang 0:c80666325948 210 textProperties.fontColor = COLOR_BLUE;
khuang 0:c80666325948 211 oled.SetTextProperties(&textProperties);
khuang 0:c80666325948 212
khuang 0:c80666325948 213 /* Display Bluetooth Label at x=17,y=65 */
khuang 0:c80666325948 214 strcpy((char *) text,"BLUETOOTH");
khuang 0:c80666325948 215 oled.Label((uint8_t *)text,17,65);
khuang 0:c80666325948 216
khuang 0:c80666325948 217 /* Change font color to white */
khuang 0:c80666325948 218 textProperties.fontColor = COLOR_WHITE;
khuang 0:c80666325948 219 textProperties.alignParam = OLED_TEXT_ALIGN_CENTER;
khuang 0:c80666325948 220 oled.SetTextProperties(&textProperties);
khuang 0:c80666325948 221
khuang 1:a0d9eeedb771 222 /* Display Label at x=22,y=80 */
khuang 0:c80666325948 223 strcpy((char *) text,"Tap Below");
khuang 0:c80666325948 224 oled.Label((uint8_t *)text,22,80);
astamb 5:0076f669169f 225
astamb 5:0076f669169f 226 // txThread.start(txTask); /*Start transmitting Sensor Tag Data */
astamb 5:0076f669169f 227
nrithya 12:b92c39b2c92a 228 //resetBLE_Thread.start(resetBLE);
astamb 9:c8e4e6d4cdd0 229
astamb 9:c8e4e6d4cdd0 230 // displayTime_Thread.start(displayTime);
astamb 9:c8e4e6d4cdd0 231
astamb 9:c8e4e6d4cdd0 232
astamb 9:c8e4e6d4cdd0 233
astamb 5:0076f669169f 234 int counter = 0;
astamb 5:0076f669169f 235 int status = 0;
khuang 0:c80666325948 236
astamb 9:c8e4e6d4cdd0 237 BLE_clock.reset();
astamb 9:c8e4e6d4cdd0 238 BLE_clock.start();
astamb 9:c8e4e6d4cdd0 239
astamb 9:c8e4e6d4cdd0 240 float start_time = BLE_clock.read();
astamb 9:c8e4e6d4cdd0 241
astamb 11:6776aca68628 242
astamb 9:c8e4e6d4cdd0 243
astamb 9:c8e4e6d4cdd0 244 char date_text[20];
astamb 9:c8e4e6d4cdd0 245 char time_text[10];
astamb 9:c8e4e6d4cdd0 246
astamb 9:c8e4e6d4cdd0 247
astamb 11:6776aca68628 248 update_clock_Thread.start(update_clock);
astamb 9:c8e4e6d4cdd0 249
astamb 9:c8e4e6d4cdd0 250
astamb 9:c8e4e6d4cdd0 251
khuang 1:a0d9eeedb771 252 while (true)
khuang 1:a0d9eeedb771 253 {
astamb 11:6776aca68628 254 // counter += 1;
astamb 5:0076f669169f 255 status = !kw40z_device.GetAdvertisementMode(); /*Indicate BLE Advertisment Mode*/
astamb 5:0076f669169f 256 blueLed = status;
astamb 11:6776aca68628 257
astamb 11:6776aca68628 258 /*
astamb 9:c8e4e6d4cdd0 259 if (status != BLE_status) {
astamb 9:c8e4e6d4cdd0 260 if (status == 1) {
astamb 9:c8e4e6d4cdd0 261 pc.printf("[%f] BLE is off.\r\n",BLE_clock.read());
astamb 9:c8e4e6d4cdd0 262 BLE_status = 1;
astamb 9:c8e4e6d4cdd0 263 }
astamb 9:c8e4e6d4cdd0 264 else {
astamb 9:c8e4e6d4cdd0 265 pc.printf("[%f] BLE is on.\r\n",BLE_clock.read(), status);
astamb 9:c8e4e6d4cdd0 266 BLE_status = 0;
astamb 9:c8e4e6d4cdd0 267 }
astamb 9:c8e4e6d4cdd0 268 }
astamb 11:6776aca68628 269 */
astamb 11:6776aca68628 270
astamb 9:c8e4e6d4cdd0 271 if (new_reading == 1) {
astamb 11:6776aca68628 272
astamb 11:6776aca68628 273 // pc.printf("New time: %lf\r\n", float_time);
astamb 11:6776aca68628 274
astamb 9:c8e4e6d4cdd0 275
astamb 9:c8e4e6d4cdd0 276 new_reading = 0;
nrithya 10:64e12acdeab5 277 /*minute_2d = (int)time_text[3];
astamb 9:c8e4e6d4cdd0 278 minute_1d = (int)time_text[4];
astamb 9:c8e4e6d4cdd0 279 second_2d = (int)time_text[6];
astamb 9:c8e4e6d4cdd0 280 second_1d = (int)time_text[7];
nrithya 10:64e12acdeab5 281 second_dec = 0;*/
nrithya 10:64e12acdeab5 282
nrithya 10:64e12acdeab5 283 hour_2d=token[3][0]-'0';
nrithya 10:64e12acdeab5 284 hour_1d=token[3][1]-'0';
astamb 11:6776aca68628 285 minute_2d=token[3][3]-'0';
astamb 11:6776aca68628 286 minute_1d=token[3][4]-'0';
astamb 11:6776aca68628 287 second_2d=token[3][6]-'0';
astamb 11:6776aca68628 288 second_1d=token[3][7]-'0';
nrithya 12:b92c39b2c92a 289 sprintf(newtime_text, "%d%d:%d%d:%d%d.%d", hour_2d, hour_1d, minute_2d, minute_1d, second_2d, second_1d, second_dec);
astamb 11:6776aca68628 290 // pc.printf("%s\r\n", token[3]);
astamb 11:6776aca68628 291 // sprintf(token1,"%s",token[3]);
astamb 11:6776aca68628 292 // pc.printf("%s\r\n", token1);
astamb 11:6776aca68628 293 /*
astamb 11:6776aca68628 294 for(int i=0;i<strlen(token1);i++)
astamb 11:6776aca68628 295 {
astamb 11:6776aca68628 296 pc.printf("%c\n",token1[i]);
astamb 11:6776aca68628 297 }
astamb 11:6776aca68628 298 */
astamb 11:6776aca68628 299 // pc.printf("Conversion successful: h2 h1 m2 m1 s2 s1 = %d %d %d %d %d %d\r\n", hour_2d, hour_1d, minute_2d, minute_1d, second_2d, second_1d);
astamb 11:6776aca68628 300
astamb 9:c8e4e6d4cdd0 301 }
astamb 11:6776aca68628 302
nrithya 12:b92c39b2c92a 303 //sprintf(newtime_text, "%d%d:%d%d:%d%d.%d", hour_2d, hour_1d, minute_2d, minute_1d, second_2d, second_1d, second_dec);
astamb 5:0076f669169f 304
astamb 11:6776aca68628 305 // sprintf(date_text,"%s %s %s",token[1],token[2],token[4]);
astamb 11:6776aca68628 306 // strcpy(time_text,token[3]);
astamb 11:6776aca68628 307
astamb 11:6776aca68628 308 oled.TextBox((uint8_t *)newtime_text,2,2, 91, 15);
astamb 11:6776aca68628 309 // Label((uint8_t *)date_text,20,20);
astamb 11:6776aca68628 310
astamb 11:6776aca68628 311
astamb 11:6776aca68628 312
astamb 11:6776aca68628 313 }
astamb 11:6776aca68628 314 }
astamb 11:6776aca68628 315
astamb 11:6776aca68628 316 /******************************End of Main*************************************/
astamb 11:6776aca68628 317
astamb 11:6776aca68628 318 void StartHaptic(void) {
astamb 11:6776aca68628 319 hapticTimer.start(50);
astamb 11:6776aca68628 320 haptic = 1;
astamb 11:6776aca68628 321 }
astamb 11:6776aca68628 322
astamb 11:6776aca68628 323 void StopHaptic(void const *n) {
astamb 11:6776aca68628 324 haptic = 0;
astamb 11:6776aca68628 325 hapticTimer.stop();
astamb 11:6776aca68628 326 }
astamb 11:6776aca68628 327
astamb 11:6776aca68628 328 void resetBLE(void) {
astamb 11:6776aca68628 329
astamb 11:6776aca68628 330 current_time = BLE_clock.read();
astamb 11:6776aca68628 331
astamb 11:6776aca68628 332 if (current_time - alert_time > 60) {
astamb 11:6776aca68628 333 pc.printf("Haven't received new data in 60 seconds. Resetting BLE\r\n");
astamb 11:6776aca68628 334 kw40z_device.ToggleAdvertisementMode();
astamb 11:6776aca68628 335 Thread::wait(500);
astamb 11:6776aca68628 336 int status = !kw40z_device.GetAdvertisementMode(); /*Indicate BLE Advertisment Mode*/
astamb 11:6776aca68628 337
astamb 11:6776aca68628 338 while (status == 1) {
astamb 11:6776aca68628 339 StartHaptic();
astamb 11:6776aca68628 340 kw40z_device.ToggleAdvertisementMode();
astamb 11:6776aca68628 341 Thread::wait(5000);
astamb 11:6776aca68628 342 }
astamb 11:6776aca68628 343 }
astamb 11:6776aca68628 344
astamb 11:6776aca68628 345
astamb 11:6776aca68628 346 }
astamb 11:6776aca68628 347
astamb 11:6776aca68628 348 void displayTime(void) {
astamb 11:6776aca68628 349
astamb 11:6776aca68628 350 // Reminder to move the clock commands from main while(1) to here
astamb 11:6776aca68628 351
astamb 11:6776aca68628 352 }
astamb 11:6776aca68628 353
astamb 11:6776aca68628 354 void update_clock(void) {
astamb 11:6776aca68628 355
astamb 11:6776aca68628 356 t.reset();
astamb 11:6776aca68628 357 t.start();
astamb 11:6776aca68628 358
astamb 11:6776aca68628 359 while (1) {
astamb 11:6776aca68628 360 // Updating time
astamb 9:c8e4e6d4cdd0 361
astamb 5:0076f669169f 362
astamb 11:6776aca68628 363 if (t.read_ms() > 100) {
astamb 11:6776aca68628 364 second_dec++;
astamb 11:6776aca68628 365 t.reset();
astamb 11:6776aca68628 366 t.start();
astamb 9:c8e4e6d4cdd0 367 }
astamb 9:c8e4e6d4cdd0 368
astamb 9:c8e4e6d4cdd0 369 if (second_dec>9) {
astamb 9:c8e4e6d4cdd0 370 second_1d++;
astamb 9:c8e4e6d4cdd0 371 second_dec = 0;
astamb 9:c8e4e6d4cdd0 372 }
astamb 9:c8e4e6d4cdd0 373
astamb 9:c8e4e6d4cdd0 374 if (second_1d>9) {
astamb 9:c8e4e6d4cdd0 375 second_2d++;
astamb 9:c8e4e6d4cdd0 376 second_1d = 0;
astamb 9:c8e4e6d4cdd0 377 second_dec = 0;
astamb 9:c8e4e6d4cdd0 378 }
astamb 9:c8e4e6d4cdd0 379
astamb 9:c8e4e6d4cdd0 380 if (second_2d*10 + second_1d > 59) {
astamb 9:c8e4e6d4cdd0 381 minute_1d++;
astamb 9:c8e4e6d4cdd0 382 second_2d = 0;
astamb 9:c8e4e6d4cdd0 383 second_1d = 0;
astamb 9:c8e4e6d4cdd0 384 second_dec = 0;
astamb 9:c8e4e6d4cdd0 385 }
astamb 9:c8e4e6d4cdd0 386
astamb 9:c8e4e6d4cdd0 387 if (minute_1d>9) {
astamb 9:c8e4e6d4cdd0 388 minute_2d++;
astamb 9:c8e4e6d4cdd0 389 minute_1d = 0;
astamb 9:c8e4e6d4cdd0 390 second_2d = 0;
astamb 9:c8e4e6d4cdd0 391 second_1d = 0;
astamb 9:c8e4e6d4cdd0 392 second_dec = 0;
astamb 9:c8e4e6d4cdd0 393 }
astamb 9:c8e4e6d4cdd0 394
astamb 9:c8e4e6d4cdd0 395 if (minute_2d*10 + minute_1d > 59) {
astamb 9:c8e4e6d4cdd0 396 hour_1d++;
astamb 9:c8e4e6d4cdd0 397 minute_2d = 0;
astamb 9:c8e4e6d4cdd0 398 minute_1d = 0;
astamb 9:c8e4e6d4cdd0 399 second_2d = 0;
astamb 9:c8e4e6d4cdd0 400 second_1d = 0;
astamb 9:c8e4e6d4cdd0 401 second_dec = 0;
astamb 9:c8e4e6d4cdd0 402 }
astamb 9:c8e4e6d4cdd0 403
astamb 9:c8e4e6d4cdd0 404 if (hour_1d > 9) {
astamb 9:c8e4e6d4cdd0 405 hour_2d++;
astamb 9:c8e4e6d4cdd0 406 hour_1d = 0;
astamb 9:c8e4e6d4cdd0 407 }
astamb 9:c8e4e6d4cdd0 408
astamb 9:c8e4e6d4cdd0 409 if (hour_2d == 2 && hour_1d > 3) {
astamb 9:c8e4e6d4cdd0 410 hour_2d = 0;
astamb 9:c8e4e6d4cdd0 411 hour_1d = 0;
astamb 9:c8e4e6d4cdd0 412 minute_2d = 0;
astamb 9:c8e4e6d4cdd0 413 minute_1d = 0;
astamb 9:c8e4e6d4cdd0 414 second_2d = 0;
astamb 9:c8e4e6d4cdd0 415 second_1d = 0;
astamb 9:c8e4e6d4cdd0 416 second_dec = 0;
astamb 9:c8e4e6d4cdd0 417 }
astamb 9:c8e4e6d4cdd0 418
astamb 9:c8e4e6d4cdd0 419
astamb 5:0076f669169f 420
khuang 1:a0d9eeedb771 421 }
astamb 9:c8e4e6d4cdd0 422
astamb 9:c8e4e6d4cdd0 423
astamb 9:c8e4e6d4cdd0 424 }
astamb 9:c8e4e6d4cdd0 425