ntp.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //
  2. // Created by janco on 25-2-16.
  3. //
  4. #include <dev/board.h>
  5. #include <dev/debug.h>
  6. #include <sys/timer.h>
  7. #include <arpa/inet.h>
  8. #include <net/route.h>
  9. #include <pro/dhcp.h>
  10. #include <pro/sntp.h>
  11. #include <stdlib.h>
  12. #include <stdio.h>
  13. #include <io.h>
  14. #include <string.h>
  15. #include <time.h>
  16. #include "log.h"
  17. #include "ntp.h"
  18. #define TIME_ZONE 1
  19. #define LOG_MODULE LOG_NTP_MODULE
  20. time_t ntp_time = 0;
  21. tm *ntp_datetime;
  22. uint32_t timeserver = 0;
  23. void NtpInit() {
  24. /* Timezone van nederland (gmt 1) */
  25. _timezone = -TIME_ZONE * 3600;
  26. GetTime();
  27. }
  28. void GetTime(){
  29. /* Ophalen van pool.ntp.org */
  30. puts("Tijd ophalen van pool.ntp.org (213.154.229.24)");
  31. timeserver = inet_addr("213.154.229.24");
  32. for (;;) {
  33. if (NutSNTPGetTime(&timeserver, &ntp_time) == 0) {
  34. break;
  35. } else {
  36. NutSleep(400);
  37. puts("Fout bij het ontvangen van de tijd");
  38. }
  39. }
  40. puts("Opgehaald.\n");
  41. ntp_datetime = localtime(&ntp_time);
  42. printf("NTP time is: %02d:%02d:%02d\n", ntp_datetime->tm_hour, ntp_datetime->tm_min, ntp_datetime->tm_sec);
  43. printf("NTP date is: %02d.%02d.%02d\n\n", ntp_datetime->tm_mday, (ntp_datetime->tm_mon + 1), (ntp_datetime->tm_year + 1900));
  44. X12RtcSetClock(ntp_datetime);
  45. }