smart_watch
Dependencies: SNTPClinet WIZnetInterface mbed-src
Fork of smart_watch by
Diff: main.cpp
- Revision:
- 0:6e799e373101
- Child:
- 1:5eae4950211d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Jun 26 00:56:23 2015 +0000 @@ -0,0 +1,121 @@ +#include "mbed.h" +#include "EthernetInterface.h" +#include "SNTPClient.h" +#include "SSD1306.h" + + +#if defined(TARGET_WIZwiki_W7500) + EthernetInterface eth; + /* DigitalOut led1(LED1); + DigitalOut led2(LED2); + DigitalOut led3(LED3); + DigitalOut led4(LED4); */ + DigitalIn sw(PC_0); +#elif + +#endif +TCPSocketConnection sock; + +DigitalOut myled(PA_6); + +Serial pc(USBTX, USBRX); // tx, rx + +datetime ntptime; +struct tm timeinfo; + + +int main() +{ + uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; + uint8_t count=0; + uint8_t time_x_offset =0; + uint8_t old_offset =0; + + + init(); + cls(); + OLED_DrawBMP(0,0,128,8,(unsigned char *)wiznet); + wait(1); + cls(); + eth.init(mac_addr); //Use DHCP + eth.connect(); + + + printf("IP Address is %s\n\r", eth.getIPAddress()); + + SNTPClient sntp("time.nist.gov", 40); // timezone: Korea, Republic of + sntp.connect(); + if(sntp.getTime(&ntptime) == true) + { + // printf("%d-%d-%d, %d:%d:%d\r\n", ntptime.yy, ntptime.mo, ntptime.dd, ntptime.hh, ntptime.mm, ntptime.ss); + // wait(1.0); + } + else + { + while(sntp.getTime(&ntptime) == true) + { + break; + } + } + + timeinfo.tm_mon = ntptime.mo-1; + timeinfo.tm_mday = ntptime.dd; + timeinfo.tm_hour = ntptime.hh; + timeinfo.tm_min = ntptime.mm; + timeinfo.tm_sec = ntptime.ss; + timeinfo.tm_year = ntptime.yy-1900; + // printf("%d-%d, %d:%d:%d\r\n", timeinfo.tm_mon, timeinfo.tm_mday, timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec); + time_t t =mktime(&timeinfo); + + set_time(t); + t = time(NULL); + + while (1) { + char buffer[32]; + time_t seconds = time(NULL); + + // printf("Time as a basic string = %s\r\n", ctime(&seconds)); + if(count == 50) + { + cls(); + count++; + } + if(count > 50) + { + time_x_offset =0; + if(old_offset != time_x_offset){ + old_offset = time_x_offset; + + } + + + //strftime (buffer,32,"%I:%M:%S ",localtime(&seconds)); + strftime (buffer,32,"%I:%M",localtime(&seconds)); + LED_P23x32Str(time_x_offset,3,buffer); + + //intBigTime(buffer); + if(sw == 0) + { + count = 0; + cls(); + + } + + } + else + { + + strftime(buffer, 32,"%a %d %b %Y", localtime(&seconds)); + OLED_ShowStr(10, 3, buffer,1 ); + strftime(buffer, 32, "%I:%M:%S %p", localtime(&seconds)); + OLED_ShowStr(10, 4, buffer,2 ); + count ++; + } + + + + + + } + +}