/** ****************************************************************************** * @file brtc.h * @author AMG Energy Solution Team * @version V1.0.0 * @date 07-Feb-2022 * @brief This file provides all the header of the board realtime clock. ****************************************************************************** * @attention * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2022 AMG

****************************************************************************** */ /** @addtogroup mBMS2 * @{ */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef _BRTC_H_ #define _BRTC_H_ /* Includes ------------------------------------------------------------------*/ #include "hc32_ddl.h" /* Exported types ------------------------------------------------------------*/ typedef struct { uint32_t sub_sec; uint16_t year; uint8_t month; uint8_t date; uint8_t wday; /* week */ uint8_t hour; uint8_t min; uint8_t sec; } _TTIME, *_PTIME; /* Field Octets Contents Range 1 1-2 year 0..65536 1 3 month 1..12 1 4 day 1..31 1 5 hour 0..23 1 6 minutes 0..59 1 7 seconds (use 60 for leap-second) 0..60 1 8 deci-seconds 0..9 1 9 direction from UTC '+' / '-' 1 10 hours from UTC 0..13 1 11 minutes from UTC 0..59 */ typedef struct { uint16_t year; uint8_t month; uint8_t day; uint8_t hour; uint8_t minutes; uint8_t seconds; uint8_t deci_seconds; uint8_t UTC_direction; // '+' / '-' uint8_t UTC_hours; uint8_t UTC_minutes; } DateAndTime; /* Exported constants --------------------------------------------------------*/ #define RTC_TMR_PERIOD_TIME 10 // 10ms #define WARMING_UP_TIME 10000 // 10sec /* Exported macro ------------------------------------------------------------*/ /* Exported functions ------------------------------------------------------- */ void InitTimer(void); void AppTaskRTC(void); void SYSCLKConfig_STOP(void); void ChangeToStopMode(void); int rtc_gettime (_TTIME* rtc); uint32_t GetBuildTimeStamp(void); int8_t Set_Time(uint8_t *time_str); void Get_TimeStr(uint8_t *text); uint8_t GET_RTC_DATA(uint16_t addr); void Get_Time(void); void Time_Update(void *ptmr, void *parg); uint32_t Get_Local_Time(void); void Set_Local_Time(uint32_t localtime); uint16_t GetTimeYear(void); uint16_t GetTimeMonth(void); uint16_t GetTimeDate(void); uint16_t GetTimeHour(void); uint16_t GetTimeMinute(void); uint16_t GetTimeSec(void); uint16_t GetTimeSubSec(void); uint32_t GetTimeStamp(void); uint32_t GetLastRebootReason(void); void RTC_TimeSet(_TTIME *aTIME); void *GetDateAndTimeEx(void); void ODisplayDateTime(uint8_t p); void SDisplayDateTime(uint8_t p); uint32_t GetWarmingUp(void); extern _TTIME DEVICE_TIME; extern uint8_t bak_sec; extern uint32_t UnixTimeStamp, BakUnixTimeStamp; extern uint32_t BuildTimeStamp; extern uint32_t OptimeStamp, disOptimeStamp; #endif /*******************(C)COPYRIGHT 2022 AMG ********************END OF FILE******/