mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-02-06 00:45:22 +08:00
* [dd][rtc] set the RTC alarm thread stack size default. Signed-off-by: GuEe-GUI <2991707448@qq.com> * [dm][rtc] make Kconfig import for DM Signed-off-by: GuEe-GUI <2991707448@qq.com> * [dm][rtc] support DM API for RTC 1. rtc_dev_set_name for RTC device init the name auto. 2. rtc_wkalarm_to_timestamp and rtc_timestamp_to_wkalarm for rt_rtc_wkalarm/time_t convert. Signed-off-by: GuEe-GUI <2991707448@qq.com> * [dm][rtc] add new drivers 1. Dallas/Maxim DS1302 2. Dallas/Maxim DS1307/37/38/39/40, ST M41T11 3. Goldfish Real Time Clock 4. Haoyu Microelectronics HYM8563 5. NXP PCF8523 6. Philips PCF8563/Epson RTC8564 7. ARM PL031 8. Epson RX8010SJ Signed-off-by: GuEe-GUI <2991707448@qq.com> --------- Signed-off-by: GuEe-GUI <2991707448@qq.com>
62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
/*
|
|
* Copyright (c) 2006-2022, RT-Thread Development Team
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2022-12-06 GuEe-GUI first version
|
|
*/
|
|
|
|
#include <rtatomic.h>
|
|
#include "rtc_dm.h"
|
|
|
|
#define DBG_TAG "rtc.dm"
|
|
#define DBG_LVL DBG_INFO
|
|
#include <rtdbg.h>
|
|
|
|
int rtc_dev_set_name(struct rt_device *rtc_dev)
|
|
{
|
|
int id;
|
|
static volatile rt_atomic_t uid = 1;
|
|
|
|
RT_ASSERT(rtc_dev != RT_NULL)
|
|
|
|
if (rt_device_find("rtc"))
|
|
{
|
|
id = (int)rt_atomic_add(&uid, 1);
|
|
|
|
return rt_dm_dev_set_name(rtc_dev, "rtc%u", id);
|
|
}
|
|
else
|
|
{
|
|
return rt_dm_dev_set_name(rtc_dev, "rtc");
|
|
}
|
|
}
|
|
|
|
time_t rtc_wkalarm_to_timestamp(struct rt_rtc_wkalarm *alarm)
|
|
{
|
|
struct tm tm_time;
|
|
time_t current_time;
|
|
|
|
current_time = time(RT_NULL);
|
|
localtime_r(¤t_time, &tm_time);
|
|
|
|
tm_time.tm_sec = alarm->tm_sec;
|
|
tm_time.tm_min = alarm->tm_min;
|
|
tm_time.tm_hour = alarm->tm_hour;
|
|
|
|
return timegm(&tm_time);
|
|
}
|
|
|
|
void rtc_timestamp_to_wkalarm(time_t timestamp, struct rt_rtc_wkalarm *alarm)
|
|
{
|
|
struct tm tm_time;
|
|
|
|
localtime_r(×tamp, &tm_time);
|
|
|
|
alarm->tm_sec = tm_time.tm_sec;
|
|
alarm->tm_min = tm_time.tm_min;
|
|
alarm->tm_hour = tm_time.tm_hour;
|
|
}
|