NRF52832 RTC using to get time stamp

Hello,I have a custom board using a Nordic nrf52823 microcontroller on it. I am using VSCode with the nrf connect SDK and the Zpehry RTOS- I want to make use Zephyr RTC to get time stamp in date time format. 

At the beggining i initialized a RTC device in DT suggesting answer in ticket:  nRF52840 with Zephyr RTOS: How to use RTC with struct rtc_time? 

my_rtc: &rtc0{
	compatible = "nordic,nrf-rtc";
	reg = < 0x4000b000 0x1000 >;
	cc-num = < 0x3 >;
	interrupts = < 0xb 0x1 >;
	status = "okay";
	clock-frequency = < 0x8000 >;
	prescaler = < 0x1 >;
};

and getting by node

#define TIMER_RTC DT_NODELABEL(my_rtc)

I tried to code something like that, the first step initialize rtc_time structure contains date time for initializing by function rtc_set_time() 

int main(void)
{
const struct device *rtc_dev = DEVICE_DT_GET(TIMER_RTC);
	int ret;
	if (!rtc_dev)
	{
		printk("cannot find rtc device!\n");
		return 0;
	}
	struct rtc_time datetime =
		{
			.tm_sec = 0,	 
			.tm_min = 0,	 
			.tm_hour = 23,	 
			.tm_mday = 6,	 
			.tm_mon = 10,	
			.tm_year = 2023, 
			.tm_nsec = 0,
		};
	 ret = rtc_set_time(rtc_dev, &datetime);
	if (ret)
	{
		printk("cannot set time");
	}
	struct rtc_time current_datetime;
}
in the loop i tried display current date but probably i understand in the wrong way the RTC and the whole library 
while (1)
	{
		printk("date: %04d-%02d-%02d %02d:%02d:%02d\n",
			   datetime.tm_year, datetime.tm_mon, datetime.tm_mday,
			   datetime.tm_hour, datetime.tm_min, datetime.tm_sec);
		ret = rtc_get_time(rtc_dev, &current_datetime);
		if (ret)
		{
			printk("cannot get time");
		}
		printk("date: %04d-%02d-%02d %02d:%02d:%02d\n",
			   current_datetime.tm_year, current_datetime.tm_mon, current_datetime.tm_mday,
			   current_datetime.tm_hour, current_datetime.tm_min, current_datetime.tm_sec);
		while (1)
			;
	}

the current data: 

Someone can explain me where i make a mistake? I am beginner so please be understanding

Parents Reply Children
Related