MBED clock sync using NTP Server from from internet
Dependencies: EthernetInterface NTPClient mbed-rtos mbed
Fork of MbedClock by
main.cpp@8:9693d69ec483, 2016-02-11 (annotated)
- Committer:
- ismaia
- Date:
- Thu Feb 11 13:05:23 2016 +0000
- Revision:
- 8:9693d69ec483
- Parent:
- 7:0a56268d858c
- Child:
- 10:d9ed3d95e5eb
Debugging
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dudanian | 0:4e6ae21cbd31 | 1 | #include "mbed.h" |
dudanian | 0:4e6ae21cbd31 | 2 | #include "rtos.h" |
dudanian | 0:4e6ae21cbd31 | 3 | #include "EthernetInterface.h" |
ismaia | 7:0a56268d858c | 4 | #include "NTPClient.h" |
dudanian | 0:4e6ae21cbd31 | 5 | #include <string> |
dudanian | 1:c47a2f0816bb | 6 | |
dudanian | 0:4e6ae21cbd31 | 7 | |
ismaia | 8:9693d69ec483 | 8 | EthernetInterface eth; |
dudanian | 2:c939d0501184 | 9 | TCPSocketConnection server; |
ismaia | 8:9693d69ec483 | 10 | NTPClient ntp; |
ismaia | 8:9693d69ec483 | 11 | DigitalOut myled(LED1); |
ismaia | 8:9693d69ec483 | 12 | time_t ctTime; |
ismaia | 7:0a56268d858c | 13 | |
dudanian | 0:4e6ae21cbd31 | 14 | |
ismaia | 7:0a56268d858c | 15 | int main() { |
ismaia | 8:9693d69ec483 | 16 | printf("Setting up ethernet interface...\r\n"); |
ismaia | 8:9693d69ec483 | 17 | if (eth.init() == 0 ) { //Use DHCP |
ismaia | 8:9693d69ec483 | 18 | printf("Ethernet setup OK\r\n"); |
ismaia | 8:9693d69ec483 | 19 | }else { |
ismaia | 8:9693d69ec483 | 20 | printf("Error: cannot set ethernet interface\r\n"); |
ismaia | 8:9693d69ec483 | 21 | return 1; |
ismaia | 8:9693d69ec483 | 22 | } |
ismaia | 8:9693d69ec483 | 23 | |
ismaia | 8:9693d69ec483 | 24 | printf("Trying to connect...\r\n"); |
ismaia | 8:9693d69ec483 | 25 | wait(0.5); |
ismaia | 8:9693d69ec483 | 26 | if ( eth.connect(30000) == 0 ){ |
ismaia | 8:9693d69ec483 | 27 | printf("IP Address is %s\n", eth.getIPAddress()); |
ismaia | 8:9693d69ec483 | 28 | }else { |
ismaia | 8:9693d69ec483 | 29 | printf("Error: cannot set ethernet interface\r\n"); |
ismaia | 8:9693d69ec483 | 30 | return 1; |
ismaia | 8:9693d69ec483 | 31 | } |
ismaia | 8:9693d69ec483 | 32 | |
ismaia | 7:0a56268d858c | 33 | printf("Trying to update time...\r\n"); |
ismaia | 8:9693d69ec483 | 34 | if (ntp.setTime("0.fr.pool.ntp.org") == 0) |
ismaia | 7:0a56268d858c | 35 | { |
ismaia | 8:9693d69ec483 | 36 | printf("Set time successfully\r\n"); |
ismaia | 7:0a56268d858c | 37 | printf("Time is set to (UTC): %s\r\n", ctime(&ctTime)); |
ismaia | 7:0a56268d858c | 38 | } |
ismaia | 7:0a56268d858c | 39 | else |
ismaia | 7:0a56268d858c | 40 | { |
ismaia | 8:9693d69ec483 | 41 | printf("Error: Cannot set time\r\n"); |
ismaia | 7:0a56268d858c | 42 | } |
ismaia | 7:0a56268d858c | 43 | eth.disconnect(); |
ismaia | 8:9693d69ec483 | 44 | ctTime = time(NULL); |
ismaia | 7:0a56268d858c | 45 | while(1) { |
ismaia | 7:0a56268d858c | 46 | myled = 1; |
ismaia | 7:0a56268d858c | 47 | wait(1); |
ismaia | 7:0a56268d858c | 48 | myled = 0; |
ismaia | 7:0a56268d858c | 49 | wait(1); |
ismaia | 7:0a56268d858c | 50 | printf("Current time is: %s\r\n", ctime(&ctTime)); |
dudanian | 0:4e6ae21cbd31 | 51 | } |
dudanian | 0:4e6ae21cbd31 | 52 | } |