123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- #include "gd32f30x_rtc.h"
- void rtc_interrupt_enable(uint32_t interrupt)
- {
- RTC_INTEN |= interrupt;
- }
- void rtc_interrupt_disable(uint32_t interrupt)
- {
- RTC_INTEN &= ~interrupt;
- }
- void rtc_configuration_mode_enter(void)
- {
- RTC_CTL |= RTC_CTL_CMF;
- }
- void rtc_configuration_mode_exit(void)
- {
- RTC_CTL &= ~RTC_CTL_CMF;
- }
- void rtc_lwoff_wait(void)
- {
-
- while (RESET == (RTC_CTL & RTC_CTL_LWOFF)){
- }
- }
- void rtc_register_sync_wait(void)
- {
-
- RTC_CTL &= ~RTC_CTL_RSYNF;
-
- while (RESET == (RTC_CTL & RTC_CTL_RSYNF)){
- }
- }
- uint32_t rtc_counter_get(void)
- {
- uint32_t temp = 0x0U;
- temp = RTC_CNTL;
- temp |= (RTC_CNTH << 16);
- return temp;
- }
- void rtc_counter_set(uint32_t cnt)
- {
- rtc_configuration_mode_enter();
-
- RTC_CNTH = cnt >> 16;
-
- RTC_CNTL = (cnt & RTC_LOW_VALUE);
- rtc_configuration_mode_exit();
- }
- void rtc_prescaler_set(uint32_t psc)
- {
- rtc_configuration_mode_enter();
-
- RTC_PSCH = (psc & RTC_HIGH_VALUE) >> 16;
-
- RTC_PSCL = (psc & RTC_LOW_VALUE);
- rtc_configuration_mode_exit();
- }
- void rtc_alarm_config(uint32_t alarm)
- {
- rtc_configuration_mode_enter();
-
- RTC_ALRMH = alarm >> 16;
-
- RTC_ALRML = (alarm & RTC_LOW_VALUE);
- rtc_configuration_mode_exit();
- }
- uint32_t rtc_divider_get(void)
- {
- uint32_t temp = 0x00U;
- temp = (RTC_DIVH & RTC_DIVH_DIV) << 16;
- temp |= RTC_DIVL;
- return temp;
- }
- FlagStatus rtc_flag_get(uint32_t flag)
- {
- if(RESET != (RTC_CTL & flag)){
- return SET;
- }else{
- return RESET;
- }
- }
- void rtc_flag_clear(uint32_t flag)
- {
-
- RTC_CTL &= ~flag;
- }
|