From b39a40b0191e0a8b155db74e885ff66e17b91896 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Thu, 06 Jun 2024 19:25:15 +0800
Subject: [PATCH] 继续完善

---
 Function/EXTERN_RTC/extern_rtc.c |   32 +++++++++++++++++++++++++++-----
 1 files changed, 27 insertions(+), 5 deletions(-)

diff --git a/Function/EXTERN_RTC/extern_rtc.c b/Function/EXTERN_RTC/extern_rtc.c
index ac70a75..b96b679 100644
--- a/Function/EXTERN_RTC/extern_rtc.c
+++ b/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ʱ��

--
Gitblit v1.9.3