The Example of SNTP for W5500 running on Nucleo board
Dependencies: SNTPClient WIZnet_Library mbed
Fork of SNTP_Ethernet_W5500 by
main.cpp@1:c4d6fee8d958, 2015-12-29 (annotated)
- Committer:
- sjallouli
- Date:
- Tue Dec 29 19:18:35 2015 +0000
- Revision:
- 1:c4d6fee8d958
- Parent:
- 0:2176bc9b0007
SNTP Using NUCLEO-F411RE and WIZnet5500
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xeon011 | 0:2176bc9b0007 | 1 | #include "mbed.h" |
sjallouli | 1:c4d6fee8d958 | 2 | #include "WIZnetInterface.h" |
xeon011 | 0:2176bc9b0007 | 3 | #include "SNTPClient.h" |
xeon011 | 0:2176bc9b0007 | 4 | |
sjallouli | 1:c4d6fee8d958 | 5 | /* |
sjallouli | 1:c4d6fee8d958 | 6 | * WIZnet 5500 Config for nucleo 411 |
sjallouli | 1:c4d6fee8d958 | 7 | */ |
sjallouli | 1:c4d6fee8d958 | 8 | Serial pc(SERIAL_TX, SERIAL_RX); |
sjallouli | 1:c4d6fee8d958 | 9 | SPI spi(SPI_MOSI, SPI_MISO, SPI_SCK); // mosi, miso, sclk |
xeon011 | 0:2176bc9b0007 | 10 | |
sjallouli | 1:c4d6fee8d958 | 11 | #define USE_DHCP 1 |
xeon011 | 0:2176bc9b0007 | 12 | |
sjallouli | 1:c4d6fee8d958 | 13 | const char * IP_Addr = "192.168.2.72"; |
sjallouli | 1:c4d6fee8d958 | 14 | const char * IP_Subnet = "255.255.255.0"; |
sjallouli | 1:c4d6fee8d958 | 15 | const char * IP_Gateway = "192.168.2.2"; |
sjallouli | 1:c4d6fee8d958 | 16 | //unsigned char MAC_Addr[6] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; |
sjallouli | 1:c4d6fee8d958 | 17 | unsigned char MAC_Addr[6] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xDD }; |
xeon011 | 0:2176bc9b0007 | 18 | |
sjallouli | 1:c4d6fee8d958 | 19 | int main() |
sjallouli | 1:c4d6fee8d958 | 20 | { |
sjallouli | 1:c4d6fee8d958 | 21 | pc.baud(115200); // console terminal to 115200 baud |
xeon011 | 0:2176bc9b0007 | 22 | |
sjallouli | 1:c4d6fee8d958 | 23 | spi.frequency(1000000); |
sjallouli | 1:c4d6fee8d958 | 24 | WIZnetInterface ethernet(&spi,D10, D3); |
sjallouli | 1:c4d6fee8d958 | 25 | |
sjallouli | 1:c4d6fee8d958 | 26 | pc.printf("Ethernet Init\r\n"); |
sjallouli | 1:c4d6fee8d958 | 27 | #if USE_DHCP |
sjallouli | 1:c4d6fee8d958 | 28 | int ret = ethernet.init(MAC_Addr); |
xeon011 | 0:2176bc9b0007 | 29 | #else |
sjallouli | 1:c4d6fee8d958 | 30 | int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway); |
xeon011 | 0:2176bc9b0007 | 31 | #endif |
xeon011 | 0:2176bc9b0007 | 32 | |
sjallouli | 1:c4d6fee8d958 | 33 | if (!ret) |
sjallouli | 1:c4d6fee8d958 | 34 | { |
sjallouli | 1:c4d6fee8d958 | 35 | pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress()); |
sjallouli | 1:c4d6fee8d958 | 36 | ret = ethernet.connect(); |
sjallouli | 1:c4d6fee8d958 | 37 | |
sjallouli | 1:c4d6fee8d958 | 38 | if (!ret) |
sjallouli | 1:c4d6fee8d958 | 39 | { |
sjallouli | 1:c4d6fee8d958 | 40 | pc.printf("IP: %s, MASK: %s, GW: %s\r\n", ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway()); |
sjallouli | 1:c4d6fee8d958 | 41 | } |
sjallouli | 1:c4d6fee8d958 | 42 | else |
sjallouli | 1:c4d6fee8d958 | 43 | { |
sjallouli | 1:c4d6fee8d958 | 44 | pc.printf("Error ethernet.connect() - ret = %d\r\n", ret); |
sjallouli | 1:c4d6fee8d958 | 45 | exit(0); |
sjallouli | 1:c4d6fee8d958 | 46 | } |
sjallouli | 1:c4d6fee8d958 | 47 | } |
sjallouli | 1:c4d6fee8d958 | 48 | else |
sjallouli | 1:c4d6fee8d958 | 49 | { |
sjallouli | 1:c4d6fee8d958 | 50 | pc.printf("Error ethernet.init() - ret = %d\r\n", ret); |
sjallouli | 1:c4d6fee8d958 | 51 | exit(0); |
sjallouli | 1:c4d6fee8d958 | 52 | } |
sjallouli | 1:c4d6fee8d958 | 53 | |
sjallouli | 1:c4d6fee8d958 | 54 | printf("IP Address is %s\n\r", ethernet.getIPAddress()); |
xeon011 | 0:2176bc9b0007 | 55 | |
sjallouli | 1:c4d6fee8d958 | 56 | SNTPClient sntp("time.nist.gov", 6); // timezone: PST |
sjallouli | 1:c4d6fee8d958 | 57 | sntp.connect(); |
sjallouli | 1:c4d6fee8d958 | 58 | |
sjallouli | 1:c4d6fee8d958 | 59 | datetime time; |
sjallouli | 1:c4d6fee8d958 | 60 | |
sjallouli | 1:c4d6fee8d958 | 61 | while (1) |
sjallouli | 1:c4d6fee8d958 | 62 | { |
sjallouli | 1:c4d6fee8d958 | 63 | if(sntp.getTime(&time) == true) |
sjallouli | 1:c4d6fee8d958 | 64 | { |
sjallouli | 1:c4d6fee8d958 | 65 | printf("%d-%d-%d, %d:%d:%d\r\n", time.yy, time.mo, time.dd, time.hh, time.mm, time.ss); |
xeon011 | 0:2176bc9b0007 | 66 | } |
sjallouli | 1:c4d6fee8d958 | 67 | else |
sjallouli | 1:c4d6fee8d958 | 68 | { |
sjallouli | 1:c4d6fee8d958 | 69 | printf("failed receive..\r\n"); |
xeon011 | 0:2176bc9b0007 | 70 | } |
sjallouli | 1:c4d6fee8d958 | 71 | |
sjallouli | 1:c4d6fee8d958 | 72 | wait(1.0); |
sjallouli | 1:c4d6fee8d958 | 73 | } |
xeon011 | 0:2176bc9b0007 | 74 | } |