#ifndef __BL2101_RTC_H__
#define __BL2101_RTC_H__

#include "BL2101.h"


typedef struct
{
	uint32_t Second;        //秒寄存器
	uint32_t Alarm;         //闹钟寄存器
	uint8_t Second_IE;      //秒中断寄存器
	uint8_t Alarm_IE;       //闹钟中断寄存器
	uint8_t OverFlow_IE;    //溢出中断寄存器
	
} RTC_InitTypeDef;


void RTC_Init(RTC_InitTypeDef* RTC_InitStruct);        //RTC初始化
void RTC_Start(void);                                  //启动RTC
void RTC_Stop(void);                                   //停止RTC
void RTC_Set_Second(uint32_t second);                  //RTC设置秒寄存器
void RTC_Set_Alarm(uint32_t alarm);                    //RTC设置闹钟寄存器
uint32_t RTC_Get_Time(void);                           //获取RTC当前计时值

void RTC_IntSecondEn(void);                            //秒中断使能
void RTC_IntSecondDis(void);                           //秒中断禁止
void RTC_IntSecondClr(void);                           //秒中断标志清除
uint8_t RTC_IntSecondStat(void);                       //秒中断状态

void RTC_IntAlarmEn(void);                             //闹钟中断使能
void RTC_IntAlarmDis(void);                            //闹钟中断禁止
void RTC_IntAlarmClr(void);                            //闹钟中断标志清除
uint8_t RTC_IntAlarmStat(void);                        //闹钟中断状态

void RTC_IntOverFlowEn(void);                          //溢出中断使能
void RTC_IntOverFlowDis(void);                         //溢出中断禁止
void RTC_IntOverFlowClr(void);                         //溢出中断标志清除
uint8_t RTC_IntOverFlowStat(void);                     //溢出中断状态


#endif //__BL2101_RTC_H__
