I made the digital watch which set the start time in ntp. It\'s same as \"clock\" see:[http://mbed.org/users/jf1vrr/programs/clock/lpucqk] except that I changed from unix timezone to ntp. See: http://blogs.yahoo.co.jp/jf1vrr_station/19816010.html (Japanese)
Dependencies: EthernetNetIf NTPClient_NetServices TextLCD mbed
main.cpp@0:aefa7207aafd, 2011-04-19 (annotated)
- Committer:
- jf1vrr
- Date:
- Tue Apr 19 10:18:26 2011 +0000
- Revision:
- 0:aefa7207aafd
Rev. 0.01A 2011/04/19
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jf1vrr | 0:aefa7207aafd | 1 | /* I made the digital watch which set the start time in ntp. |
jf1vrr | 0:aefa7207aafd | 2 | It's same as "clock" see:[http://mbed.org/users/jf1vrr/programs/clock/lpucqk] |
jf1vrr | 0:aefa7207aafd | 3 | except that I changed from unix timezone to ntp. |
jf1vrr | 0:aefa7207aafd | 4 | */ |
jf1vrr | 0:aefa7207aafd | 5 | #include "mbed.h" |
jf1vrr | 0:aefa7207aafd | 6 | #include "TextLCD.h" |
jf1vrr | 0:aefa7207aafd | 7 | #include "EthernetNetIf.h" |
jf1vrr | 0:aefa7207aafd | 8 | #include "NTPClient.h" |
jf1vrr | 0:aefa7207aafd | 9 | |
jf1vrr | 0:aefa7207aafd | 10 | TextLCD lcd(p24, p26, p27, p28, p29, p30); |
jf1vrr | 0:aefa7207aafd | 11 | EthernetNetIf eth; |
jf1vrr | 0:aefa7207aafd | 12 | NTPClient ntp; |
jf1vrr | 0:aefa7207aafd | 13 | |
jf1vrr | 0:aefa7207aafd | 14 | int offset_JAPAN = 32400; |
jf1vrr | 0:aefa7207aafd | 15 | |
jf1vrr | 0:aefa7207aafd | 16 | int main() { |
jf1vrr | 0:aefa7207aafd | 17 | /* Set up Ethernet */ |
jf1vrr | 0:aefa7207aafd | 18 | lcd.cls(); |
jf1vrr | 0:aefa7207aafd | 19 | lcd.printf("Setting up Eth\n"); |
jf1vrr | 0:aefa7207aafd | 20 | EthernetErr ethErr = eth.setup(); |
jf1vrr | 0:aefa7207aafd | 21 | if (ethErr) { |
jf1vrr | 0:aefa7207aafd | 22 | lcd.cls(); |
jf1vrr | 0:aefa7207aafd | 23 | lcd.printf("Error with Eth\nNum: %d", ethErr); |
jf1vrr | 0:aefa7207aafd | 24 | return -1; |
jf1vrr | 0:aefa7207aafd | 25 | } |
jf1vrr | 0:aefa7207aafd | 26 | |
jf1vrr | 0:aefa7207aafd | 27 | /* Set up NTP */ |
jf1vrr | 0:aefa7207aafd | 28 | lcd.printf("Setting up NTP\n"); |
jf1vrr | 0:aefa7207aafd | 29 | Host server(IpAddr(), 123, "ntp1.jst.mfeed.ad.jp"); |
jf1vrr | 0:aefa7207aafd | 30 | ntp.setTime(server); |
jf1vrr | 0:aefa7207aafd | 31 | |
jf1vrr | 0:aefa7207aafd | 32 | lcd.cls(); |
jf1vrr | 0:aefa7207aafd | 33 | while(1) { |
jf1vrr | 0:aefa7207aafd | 34 | time_t seconds = time(NULL)+offset_JAPAN; |
jf1vrr | 0:aefa7207aafd | 35 | |
jf1vrr | 0:aefa7207aafd | 36 | lcd.locate(0,0); |
jf1vrr | 0:aefa7207aafd | 37 | char day[16]; |
jf1vrr | 0:aefa7207aafd | 38 | strftime(day, 16, "%Y/%m/%d %a\n", localtime(&seconds)); |
jf1vrr | 0:aefa7207aafd | 39 | lcd.printf("%s", day); |
jf1vrr | 0:aefa7207aafd | 40 | |
jf1vrr | 0:aefa7207aafd | 41 | char time[16]; |
jf1vrr | 0:aefa7207aafd | 42 | strftime(time, 16, "%H:%M:%S\n", localtime(&seconds)); |
jf1vrr | 0:aefa7207aafd | 43 | lcd.locate(0,1); |
jf1vrr | 0:aefa7207aafd | 44 | lcd.printf("%s", time); |
jf1vrr | 0:aefa7207aafd | 45 | |
jf1vrr | 0:aefa7207aafd | 46 | wait(1.0); |
jf1vrr | 0:aefa7207aafd | 47 | } |
jf1vrr | 0:aefa7207aafd | 48 | } |