ところが。
これが全然値を返してくれません。0ばっかりです。sntp_init()の順番が悪いのだろうか、time zoneを設定しなければいけないのか、upd local portが必要なのだろうか、DNSが動いていないのだろうか…など、2時間ほど試したのですが、ダメでした。
が。
ふと見ると、参考にしていたReferenceはver 1.1と書いてありまして。最新の1.5.4を見ると多少サンプルが違います。1.1と違って、waitが入ってます。
… sntp_get_current_timestampでは、パケット待ってくれないんですね…。referenceにそんなこた何にも書いてねーぞー(血の叫び
以下のコードで普通に動きました。はい、お疲れ様。
uint32_t getTimestamp() {
configTime(9 * 3600, 0, "ntp.nict.jp", NULL, NULL);
uint32_t result = 0;
int cnt = 0;
while (result == 0) {
result = sntp_get_current_timestamp();
delay(100);
if (++cnt > 10) {
break;
}
}
return result;
}
ご活用くださいませ。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。