How to enable internal RTC of nRF9160 to get real time

Hi,

I want to use nRF9160's internal RTC. I coded it but did not get the real time correctly.

SDK: 2.5.0

IDE: vs code

board: nRF9160dk

-----------------------------------------code---------------------------------------------------------

printk("\nnRF9160 RTC initialization started...\n");

  dev_rtc = device_get_binding(DEVICE_DT_NAME(RTC0_NODE));
  if (!dev_rtc) {
    printk("\n--ERROR: Binding RTC failed.--\n");
    exit(1);
  }


  struct rtc_time rtc_time = {
    .tm_sec = 0,   
    .tm_min = 0,    
    .tm_hour = 12, 
    .tm_mday = 1,  
    .tm_mon = 0,     
    .tm_year = 125,
  };

  err = rtc_set_time(dev_rtc, &rtc_time);
  if (err!=0) {
    printk("\n--ERROR: set RTC time failed.--\n");
    exit(1);
  }
  err = 1;


  struct rtc_time current_time;
  err = rtc_get_time(dev_rtc, &current_time);
  if (err!=0) {
    printk("\n--ERROR: get RTC time failed.--\n");
    exit(1);
  }
  err = 1;


  printk("current time: %d-%02d-%02d %02d:%02d:%02d\n", current_time.tm_year+1900 , current_time.tm_mon+1, current_time.tm_mday, current_time.tm_hour, current_time.tm_min, current_time.tm_sec);
  printk("rtc_time: %d-%02d-%02d %02d:%02d:%02d\n", rtc_time.tm_year+1900 , rtc_time.tm_mon+1, rtc_time.tm_mday, rtc_time.tm_hour, rtc_time.tm_min, rtc_time.tm_sec);






----------------------------------------result print--------------------------------------------
nRF9160 RTC initialization started...
current time: 111581-75469-536921472 00:68003:75468
rtc_time: 2025-01-01 12:00:00

Best regards,

Liza

Related