Data_Time.c 2.4 KB
Newer Older
hu's avatar
hu committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
#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;
}