cc3000_ntp_demo_F446RE
Dependencies: NTPClient2 NVIC_set_all_priorities cc3000_hostdriver_mbedsocket mbed
Fork of cc3000_ntp_demo by
main.cpp@8:6870e6801838, 2015-10-17 (annotated)
- Committer:
- JackB
- Date:
- Sat Oct 17 23:12:10 2015 +0000
- Revision:
- 8:6870e6801838
- Parent:
- 6:4cc48f349aed
CC3000 NTP demo on Nucleo F446RE
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Kojto | 0:606d6c8dcb58 | 1 | /* mbed Microcontroller Library |
Kojto | 0:606d6c8dcb58 | 2 | * Copyright (c) 2006-2013 ARM Limited |
Kojto | 0:606d6c8dcb58 | 3 | * |
Kojto | 0:606d6c8dcb58 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
Kojto | 0:606d6c8dcb58 | 5 | * you may not use this file except in compliance with the License. |
Kojto | 0:606d6c8dcb58 | 6 | * You may obtain a copy of the License at |
Kojto | 0:606d6c8dcb58 | 7 | * |
Kojto | 0:606d6c8dcb58 | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
Kojto | 0:606d6c8dcb58 | 9 | * |
Kojto | 0:606d6c8dcb58 | 10 | * Unless required by applicable law or agreed to in writing, software |
Kojto | 0:606d6c8dcb58 | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
Kojto | 0:606d6c8dcb58 | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
Kojto | 0:606d6c8dcb58 | 13 | * See the License for the specific language governing permissions and |
Kojto | 0:606d6c8dcb58 | 14 | * limitations under the License. |
Kojto | 0:606d6c8dcb58 | 15 | */ |
Kojto | 0:606d6c8dcb58 | 16 | #include "mbed.h" |
Kojto | 0:606d6c8dcb58 | 17 | #include "cc3000.h" |
Kojto | 0:606d6c8dcb58 | 18 | #include "main.h" |
Kojto | 0:606d6c8dcb58 | 19 | #include "NTPClient.h" |
Kojto | 0:606d6c8dcb58 | 20 | |
JackB | 8:6870e6801838 | 21 | #define CC3000_IRQ D3 // (D3) |
JackB | 8:6870e6801838 | 22 | #define CC3000_EN D5 // (D5) |
JackB | 8:6870e6801838 | 23 | #define CC3000_CS D10 // (D10) |
JackB | 8:6870e6801838 | 24 | #define CC3000_MOSI D11 // (D11) |
JackB | 8:6870e6801838 | 25 | #define CC3000_MISO D12 // (D12) |
JackB | 8:6870e6801838 | 26 | #define CC3000_SCLK D13 // (D13) |
JackB | 8:6870e6801838 | 27 | |
JackB | 8:6870e6801838 | 28 | #define SSID "Prakjaroen" |
JackB | 8:6870e6801838 | 29 | #define PHRASE "A4B5C6D7E8F9" |
JackB | 8:6870e6801838 | 30 | #define SECURITY WPA2 |
JackB | 8:6870e6801838 | 31 | |
JackB | 8:6870e6801838 | 32 | #define IP "192.168.2.165" |
JackB | 8:6870e6801838 | 33 | #define MASK "255.255.255.0" |
JackB | 8:6870e6801838 | 34 | #define GW "192.168.2.1" |
JackB | 8:6870e6801838 | 35 | #define DHCP 1 |
JackB | 8:6870e6801838 | 36 | |
Kojto | 0:606d6c8dcb58 | 37 | using namespace mbed_cc3000; |
Kojto | 0:606d6c8dcb58 | 38 | |
JackB | 8:6870e6801838 | 39 | #if defined TARGET_NUCLEO_F446RE |
JackB | 8:6870e6801838 | 40 | //cc3000 wifi(IRQ, EN, CS, SPI(MOSI, MISO, SCLK), SSID, PHRASE, SECURITY, false); |
JackB | 8:6870e6801838 | 41 | cc3000 wifi(D3, D5, D10, SPI(D11, D12, D13), "Prakjaroen", "A4B5C6D7E8F9", WPA2, false); |
Kojto | 3:4a2dfa38a61e | 42 | Serial pc(USBTX, USBRX); |
Kojto | 2:f163731f852a | 43 | #endif |
Kojto | 2:f163731f852a | 44 | |
Kojto | 3:4a2dfa38a61e | 45 | /** |
Kojto | 3:4a2dfa38a61e | 46 | * \brief NTP client demo |
Kojto | 0:606d6c8dcb58 | 47 | * \param none |
Kojto | 0:606d6c8dcb58 | 48 | * \return int |
Kojto | 0:606d6c8dcb58 | 49 | */ |
Kojto | 0:606d6c8dcb58 | 50 | int main() { |
Kojto | 2:f163731f852a | 51 | init(); /* board dependent init */ |
JackB | 8:6870e6801838 | 52 | pc.baud(230400); |
Kojto | 5:6d9d149b01cd | 53 | |
JackB | 8:6870e6801838 | 54 | printf("\r\n--------------------------------------------------------------------------------\r\n"); |
JackB | 8:6870e6801838 | 55 | printf("cc3000 NTP client demo.\r\n"); |
JackB | 8:6870e6801838 | 56 | #if (DHCP == 1) |
JackB | 8:6870e6801838 | 57 | printf("Initialize the interface using DHCP...\r\n"); |
JackB | 8:6870e6801838 | 58 | printf("wifi.init() "); |
Kojto | 5:6d9d149b01cd | 59 | wifi.init(); |
JackB | 8:6870e6801838 | 60 | #else |
JackB | 8:6870e6801838 | 61 | printf("Initialize the interface using a static IP address...\r\n"); |
JackB | 8:6870e6801838 | 62 | printf("wifi.init(%s, %s, %s) ", IP, MASK, GW); |
JackB | 8:6870e6801838 | 63 | wifi.init(IP, MASK, GW); |
JackB | 8:6870e6801838 | 64 | #endif |
JackB | 8:6870e6801838 | 65 | printf("done.\r\n"); |
JackB | 8:6870e6801838 | 66 | printf("wifi.connect() "); |
Kojto | 5:6d9d149b01cd | 67 | if (wifi.connect() == -1) { |
JackB | 8:6870e6801838 | 68 | printf("failed.\r\n"); |
Kojto | 5:6d9d149b01cd | 69 | printf("Failed to connect. Please verify connection details and try again. \r\n"); |
Kojto | 0:606d6c8dcb58 | 70 | } else { |
JackB | 8:6870e6801838 | 71 | printf("done.\r\n"); |
JackB | 8:6870e6801838 | 72 | printf("IP address: %s \r\n", wifi.getIPAddress()); |
Kojto | 0:606d6c8dcb58 | 73 | } |
Kojto | 0:606d6c8dcb58 | 74 | |
JackB | 8:6870e6801838 | 75 | NTPClient ntp_client; |
JackB | 8:6870e6801838 | 76 | time_t ct_time; |
JackB | 8:6870e6801838 | 77 | char time_buffer[80]; |
JackB | 8:6870e6801838 | 78 | char time_buffer_old[80]; |
JackB | 8:6870e6801838 | 79 | wait(1); |
JackB | 8:6870e6801838 | 80 | |
JackB | 8:6870e6801838 | 81 | strcpy(time_buffer_old, ""); |
JackB | 8:6870e6801838 | 82 | |
JackB | 8:6870e6801838 | 83 | // Parameters |
JackB | 8:6870e6801838 | 84 | char* domain_name = "0.uk.pool.ntp.org"; |
JackB | 8:6870e6801838 | 85 | int port_number = 123; |
JackB | 8:6870e6801838 | 86 | |
JackB | 8:6870e6801838 | 87 | // Read time from server |
JackB | 8:6870e6801838 | 88 | printf("Reading time...\r\n"); |
JackB | 8:6870e6801838 | 89 | ntp_client.setTime(domain_name, port_number); |
JackB | 8:6870e6801838 | 90 | |
JackB | 8:6870e6801838 | 91 | // ct_time = time(NULL); |
JackB | 8:6870e6801838 | 92 | // strftime(time_buffer, 80, "%a %b %d %T %p %z %Z\n", localtime(&ct_time)); |
JackB | 8:6870e6801838 | 93 | // printf("UTC/GMT: %s\n", time_buffer); |
JackB | 8:6870e6801838 | 94 | // printf("UTC %s\n", ctime(&ct_time)); |
Kojto | 3:4a2dfa38a61e | 95 | |
JackB | 8:6870e6801838 | 96 | // Choose standard or daylight savings time, comment out other |
JackB | 8:6870e6801838 | 97 | // ct_time= time(NULL) + 3600; // Winter time - Convert to Europe/Amsterdam Time |
JackB | 8:6870e6801838 | 98 | ct_time = time(NULL) + 7200; // Summer time - Convert to Europe/Amsterdam Time |
JackB | 8:6870e6801838 | 99 | set_time(ct_time); |
JackB | 8:6870e6801838 | 100 | |
JackB | 8:6870e6801838 | 101 | // ct_time = time(NULL); |
JackB | 8:6870e6801838 | 102 | strftime(time_buffer, 80, "%a %d-%b-%Y %T", localtime(&ct_time)); |
JackB | 8:6870e6801838 | 103 | printf("%s\r\n", time_buffer); |
JackB | 8:6870e6801838 | 104 | |
JackB | 8:6870e6801838 | 105 | while (1) { |
JackB | 8:6870e6801838 | 106 | ct_time = time(NULL); |
JackB | 8:6870e6801838 | 107 | strftime(time_buffer, 80, "%S", localtime(&ct_time)); |
JackB | 8:6870e6801838 | 108 | if (strcmp(time_buffer, time_buffer_old) != 0) { |
JackB | 8:6870e6801838 | 109 | strcpy(time_buffer_old, time_buffer); |
JackB | 8:6870e6801838 | 110 | strftime(time_buffer, 80, "%a %d-%b-%Y %T", localtime(&ct_time)); |
JackB | 8:6870e6801838 | 111 | printf("%s\r\n", time_buffer); |
JackB | 8:6870e6801838 | 112 | // Sync ones a day |
JackB | 8:6870e6801838 | 113 | strftime(time_buffer, 80, "%T", localtime(&ct_time)); |
JackB | 8:6870e6801838 | 114 | if (strcmp(time_buffer, "00:00:00") == 0) { |
JackB | 8:6870e6801838 | 115 | ntp_client.setTime(domain_name, port_number); |
JackB | 8:6870e6801838 | 116 | } |
JackB | 8:6870e6801838 | 117 | } |
Kojto | 0:606d6c8dcb58 | 118 | } |
Kojto | 0:606d6c8dcb58 | 119 | } |
Kojto | 0:606d6c8dcb58 | 120 |