57void xc_rtc_start(
void) { rtc_icr__rtc__cnt_e__setf(RTC_ICR_CNTE_ENABLE); }
59void xc_rtc_stop(
void) { rtc_icr__rtc__cnt_e__setf(RTC_ICR_CNTE_DISABLE); }
79 cpr_ctlapbclken_grctl__rtc_pclk_en__setf(ENABLE);
81 cprao_aon_clken_grctl__rtc_clk_en__setf(ENABLE);
119 val = rtc_all_intr_ao_get();
121 if (val & RTC_AO_ALL_INTR_AO_TIMER_INTR_Msk) {
122 rtc_ao_timer_ctl__rtc_ao_timer_clr__setf(RTC_AO_TIMER_CTL_AO_TIMER_CLR_SET);
123 rtc_ao_timer_ctl__rtc_ao_timer_en__setf(RTC_AO_TIMER_CTL_AO_TIMER_EN_DISABLE);
128 val = rtc_isr_eoi_get();
131 rtc_isr_eoi_set(val);
133 if ((val & RTC_ICR_T1E_Msk) == RTC_ICR_T1E_Msk){
136 if ((val & RTC_ICR_T2E_Msk) == RTC_ICR_T2E_Msk){
139 if ((val & RTC_ICR_T3E_Msk) == RTC_ICR_T3E_Msk){
143 if ((val & RTC_ICR_DaE_Msk) == RTC_ICR_DaE_Msk){
146 if ((val & RTC_ICR_HoE_Msk) == RTC_ICR_HoE_Msk){
149 if ((val & RTC_ICR_MiE_Msk) == RTC_ICR_MiE_Msk){
152 if ((val & RTC_ICR_SeE_Msk) == RTC_ICR_SeE_Msk){
185 volatile int32_t hw_timeout = 10000;
189 rtc_ao_timer_ctl__rtc_ao_timer_value__setf(32);
190 rtc_ao_timer_ctl__rtc_freq_timer_en__setf(1);
197 if (hw_timeout < 0) {
201 val = rtc_freq_32k_timer_val_get();
204 rtc_ao_timer_ctl__rtc_ao_timer_en__setf(DISABLE);
205 rtc_ao_timer_ctl__rtc_ao_timer_clr__setf(ENABLE);
207 freq = (float)(15625.0f / (
float)val) * 32768.0f;
208 DEBUG(
"Calib freq: %u\n", (uint32_t)freq);
210 rtc_raw_limit__setf((uint32_t)freq);
Rtc_MatchTimeTypeDef_t MatchTime
uint8_t(* T3_CMR_Callback)(void)
uint8_t(* T2_CMR_Callback)(void)
uint8_t(* Hour_Callback)(void)
uint8_t(* AO_Timer_Callback)(uint8_t calib_flag)
uint8_t(* Sec_Callback)(void)
uint8_t(* Min_Callback)(void)
uint8_t(* T1_CMR_Callback)(void)
uint8_t(* Day_Callback)(void)
CLOCK_LFCLK_In_Typedef xc_clock_lfclk_in_get(void)
xc_clock_lfclk_in_get
CLOCK_HFCLK_In_Typedef xc_clock_hfclk_in_get(void)
xc_clock_hfclk_in_get
RTC_Intr_Cb_t RTC_Intr_cb
__WEAK uint8_t T2_CMR_Callback(void)
void xc_rtc_date_get(Rtc_DateTypeDef_t *Date)
static void xc_rtc_matchtime_set(RTC_InitCfg_t *rtc_cfg)
static volatile uint8_t calibration_flag
__WEAK uint8_t Min_Callback(void)
uint8_t xc_rc32k_count_calib()
RC32k_Count_Calib
__WEAK uint8_t Hour_Callback(void)
__WEAK uint8_t Sec_Callback(void)
uint8_t AO_Timer_Callback(uint8_t calib_flag)
__WEAK uint8_t T3_CMR_Callback(void)
__WEAK uint8_t T1_CMR_Callback(void)
void xc_rtc_init(RTC_InitCfg_t *rtc_cfg)
__WEAK uint8_t Day_Callback(void)
static __inline void __rtc_dateget(Rtc_DateTypeDef_t *Date)
static __inline void rtc_config_minit(RTC_InitCfg_t *rtc_cfg)
static __inline void rtc_dateSet(RTC_InitCfg_t *rtc_cfg)
static __inline void rtc_config_secit(RTC_InitCfg_t *rtc_cfg)
static __inline void rtc_config_dayit(RTC_InitCfg_t *rtc_cfg)
static __inline void rtc_config_matchtimeit(RTC_InitCfg_t *rtc_cfg)
static __inline void rtc_config_hourit(RTC_InitCfg_t *rtc_cfg)
static __inline void rtc_datelimitSet(RTC_InitCfg_t *rtc_cfg)