Data_Time.c 2.4 KB
#include "Data_Time.h"


uint8_t  Time_calibration ;
uint8_t  IOTimeCalEnable ;



/******************************************************************************
函数名:Data_Time_FactiryReset
功  能:初始化時間狀態
参  数:无
返回值:无
*******************************************************************************
注  意:KL15On的時候調用
******************************************************************************/

void Data_Time_KL15_Init(void)
{

}

void Data_Time_WakeUp_Init(void)
{
    Time_calibration = 0u;
    IOTimeCalEnable = 0u;
}


void Received_2AF_Calibration(void)
{
    if (Time_calibration <= 3u)/*86104-12*/
    {
        Time_calibration++;
    }
}

/******************************************************************************
Data_Time_Calibration_Data
功  能:时间校准
参  数:无
返回值:无
*******************************************************************************
注  意:该服务函数唤醒后对时
******************************************************************************/
static uint8_t wbytestflag = 0 ;
    uint16_t   Year_FLAG = 0u;
    uint8_t   Month_FLAG = 0u;
    uint8_t   Date_FLAG = 0u;
    uint8_t   Hour_FLAG = 0u;
    uint8_t   Minute_FLAG = 0u;
    uint8_t   Second_FLAG = 0u;
void Data_Time_Calibration(void)
{




    if (IOTimeCalEnable == 0u) /*時間未同步過*/   /*86104-9*/ /*86104-12*/
    {
        /*86104*/   /*86104-12*/
        if (wbytestflag)
        {
            wbytestflag = 0 ;
            //if (Time_calibration >= 3u)/*86104-12*/
            {
                /*時間同步完成,記錄同步狀態 IOTimeCalEnable=1代表已經同步過*/
                IOTimeCalEnable = 1u;
                /*時間顯示是完整的所以同步時間*/

                RTE_RTC_Set_Hour  (  Hour_FLAG  );
                RTE_RTC_Set_Minute(  Minute_FLAG   );
                RTE_RTC_Set_Date  (  Date_FLAG   );
                RTE_RTC_Set_Month (  Month_FLAG  );
                RTE_RTC_Set_Year  (  Year_FLAG );
                RTE_RTC_Confirm_Overwrite();
            }
        }
    }
}

/******************************************************************************
函数名:Get_RTC_Time_calibration
功  能: 获得时间校准状态 1为已经校准 0为未校准
******************************************************************************/
uint8_t Get_RTC_Time_calibration(void)
{
    return IOTimeCalEnable;
}