Перенесена из k1921vk028/1921vk028/lib/rtc_service. Ядро rtc_service_core.c зависит только от stddef, string и собственных заголовков; доступ к часам и backup-памяти вынесен в rtc_service_port.h. Порт для K1921VK028 идёт в комплекте и служит образцом для следующего МК.
RTC Service
Независимый модуль для управления RTC с резервированным backup-томом на K1921VK028.
- Ядро:
rtc_service_core.c - Порт HAL:
rtc_service_port_k1921vk028.c - Публичный API:
rtc_service.h,rtc_service_types.h,rtc_service_port.h
Быстрый старт
#include "rtc_service.h"
RtcService_InitConfig cfg = {
.preferred_clock_source = RTC_SERVICE_CLOCK_SOURCE_AUTO,
.fallback_datetime = {
.year = 25, .month = 1, .day = 1,
.weekday = 3, .hour = 0, .minute = 0, .second = 0
}
};
RtcService_Status status;
RtcService_Init(&cfg, &status);
Структура файлов:
lib/rtc_service/
├─ rtc_service_types.h
├─ rtc_service.h
├─ rtc_service_port.h
├─ rtc_service_port_k1921vk028.c
├─ rtc_service_core.c
├─ README.md
├─ PROJECT_RELATIONS.md
├─ HELP.md
└─ PORTING.md
Интеграция
Для текущего проекта:
- В
main/app/main.cвызватьRtcService_Init(...)изperiph_init. - Считать время
RtcService_GetDateTime(...)где нужно. - Для изменения времени использовать
RtcService_SetDateTime(...).
Полезные ссылки
- Обязательные правила: TASK_RULES.md
- Детальные связи: PROJECT_RELATIONS.md
- Пользовательская документация: HELP.md
- Переход на другую платформу: PORTING.md