Cortex M3、Stellaris® LM3S6965 評価ボードを使用しています。古い画面に NTP サーバーの時刻を表示したいと考えています。まず、NTP サーバーからの応答を取得します。サーバーがUDPで動作することを検索しました。そしてそれは私にタイムスタンプを与えます。LWIP ライブラリを使用しています。
サーバーに UDP パケットを送信しようとしていますが、受信したパケット データをディスプレイ (タイムスタンプ) に表示したいと考えています。
したがって、udp パッケージを TNP サーバーに送信し、タイムスタンプを受信する必要があると思います。
しかし、どういうわけか機能していません。皆さんが解決策を見つけるのを手伝ってくれることを願っています.
編集:
NTPに関する詳細情報も見つかりました here
更新されたプログラム:
// Function gets called when we recieve data
err_t RecvUTPCallBack(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port){
RIT128x96x4Enable(1000000);
RIT128x96x4StringDraw("ENTERING CALLBACK", 40, 40, 11);
volatile int totaal_lengte=0;
totaal_lengte = p->tot_len;
volatile int line=40;
while(1){
RIT128x96x4Enable(1000000);
RIT128x96x4StringDraw(p->payload+1, 0, line, 15);
line+=8;
if(p->len != p->tot_len){
p=p->next;
}
else break;
}
pbuf_free(p);
}
int main(void){
//UDP
struct udp_pcb * udp_con_new;
struct ip_addr ntp_server;
udp_con_new = udp_new();
IP4_ADDR(&ntp_server,65,55,21,13); // time.windows.com
udp_connect(udp_con_new,&ntp_server,123);
struct pbuf * p;
p = 0;
udp_send(udp_con_new, p);
//udp_recv(upcb,RecvUTPCallBack, recv_arg);
}