forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-03 71f8bdb7c63acc381d71105bb950411029f4250f
Function/EXTERN_RTC/extern_rtc.c
@@ -4,14 +4,14 @@
#include "gpio.h"
#include "system_general_para.h"
__IO sClockBCD sys_clockBCD_g = {24,1,1,0,0,0};
__IO sClockBCD sys_clockBCD_g = {0x24,1,1,0,0,0};
void RTC_GPIO_Init(void)
{
   I2c_Scl_Gpio_Init();
   
   InputtIO(EXT_RTC_INT_PORT,EXT_RTC_INT_PIN,IN_PULLUP);
   InputtIO(EXT_RTC_INT_PORT,EXT_RTC_INT_PIN,IN_NORMAL);
}
@@ -28,12 +28,31 @@
   minDec = BCD_2_DECIMAL(TimeBCD.min);
   secDec = BCD_2_DECIMAL(TimeBCD.sec);
   
   if((yearDec>99)||(yearDec<20)||(monthDec>12)||(monthDec==0)||(dayDec>31)||(dayDec==0)||(hourDec>23)||(minDec>59)||(secDec>59))
   if((yearDec>YEAR_DEC_MAX)||(yearDec<20)||(monthDec>12)||(monthDec==0)||(dayDec>31)||(dayDec==0)||(hourDec>23)||(minDec>59)||(secDec>59))
   {
      //ËÑË÷ʱ¼äÎÞЧ
      //ʱ¼äÎÞЧ
      return FAIL;
   }else
   {
      switch(monthDec)
      {
         case 4:
         case 6:
         case 9:
         case 11:
            if(dayDec>30)
               return FAIL;
         case 2:
            if(((yearDec&0x3) != 0) && (dayDec>28)){
               return FAIL;
            }
            else if(((yearDec&0x3) == 0) && (dayDec > 29)){
               return FAIL;
            }
            break;
         default:
            break;
      }
      return PASS;
   }
}
@@ -101,7 +120,7 @@
//ÉèÖÃÍⲿRTCʱ¼ä 
//²ÎÊý£ºBCD¸ñʽ
void Set_Extern_Rtc_Time(uint16_t year,uint8_t month,uint8_t day,uint8_t week,uint8_t hour,uint8_t min,uint8_t sec)
ErrorStatus Set_Extern_Rtc_Time(uint16_t year,uint8_t month,uint8_t day,uint8_t week,uint8_t hour,uint8_t min,uint8_t sec)
{
   uint8_t rtc_time[7] = {0,0,0,0,1,1,0x15};
   sClockBCD   calendar_l;
@@ -123,7 +142,10 @@
      rtc_time[5] = month;
      rtc_time[6] = year;
      R8025T_Write(0,rtc_time,7);
      return PASS;
   }
   return FAIL;
}
//»ñÈ¡ÍⲿRTCʱ¼ä