From 72def895431ad7a08e635b11f3da738e2b2c4618 Mon Sep 17 00:00:00 2001
From: wujiazhi <1147861305@qq.com>
Date: Thu, 13 Jun 2024 11:31:04 +0800
Subject: [PATCH] add lower model test

---
 Function/EXTERN_RTC/extern_rtc.c |  148 +++++++++++++++----------------------------------
 1 files changed, 46 insertions(+), 102 deletions(-)

diff --git a/Function/EXTERN_RTC/extern_rtc.c b/Function/EXTERN_RTC/extern_rtc.c
index ac70a75..a660541 100644
--- a/Function/EXTERN_RTC/extern_rtc.c
+++ b/Function/EXTERN_RTC/extern_rtc.c
@@ -1,44 +1,13 @@
 #include "extern_rtc.h"
 #include "i2c.h"
 #include "uart.h"
-#include "gpio.h"
-#include "system_general_para.h"
+#include "sundry.h"
 
-__IO sClockBCD sys_clockBCD_g = {24,1,1,0,0,0};
+#include "ex_rtc.h"
 
+//__IO CALENDAR_TIME_T calendar_g = {0};
 
-void RTC_GPIO_Init(void)
-{
-	I2c_Scl_Gpio_Init();
-	
-	InputtIO(EXT_RTC_INT_PORT,EXT_RTC_INT_PIN,IN_PULLUP);
-}
-
-
-
-//�ж�BCDʱ���Ƿ���Ч�� FAIL��ʾʱ������PASS��ʾʱ����Ч
-ErrorStatus TimeEffectJudgm(const sClockBCD TimeBCD)
-{
-	uint8_t yearDec,monthDec,dayDec,hourDec,minDec,secDec;
-	
-	yearDec = BCD_2_DECIMAL(TimeBCD.year);
-	monthDec = BCD_2_DECIMAL(TimeBCD.month);
-	dayDec = BCD_2_DECIMAL(TimeBCD.day);
-	hourDec = BCD_2_DECIMAL(TimeBCD.hour);
-	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))
-	{
-		//����ʱ����Ч
-		return FAIL;
-	}else
-	{
-		return PASS;
-	}
-}
-
-
+__IO CALENDAR_TIME_T calendar_test_g = {0};
 
 
 void R8025T_Write(uint8_t sadd,uint8_t * pBuffer,uint8_t length)
@@ -103,87 +72,62 @@
 //������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)
 {
-	uint8_t rtc_time[7] = {0,0,0,0,1,1,0x15};
-	sClockBCD	calendar_l;
+	uint8_t time[7] = {0,0,0,0,1,1,0x15};
+	year &= 0x00FF;
+	if(Bcd_2_Hex(sec) < 60)
+		time[0] = sec;
+	if(Bcd_2_Hex(min) < 60)
+		time[1] = min;
+	if(Bcd_2_Hex(hour) < 24)
+		time[2] = hour;
+	time[3] = week;
+	if(Bcd_2_Hex(day) < 32)
+		time[4] = day;
+	if(Bcd_2_Hex(month) < 13)
+		time[5] = month;
+	if(Bcd_2_Hex(year) < 100)
+		time[6] = year;
 	
-	calendar_l.year = year & 0x00FF;
-	calendar_l.month = month;
-	calendar_l.day = day;
-	calendar_l.hour = hour;
-	calendar_l.min = min;
-	calendar_l.sec = sec;
-	
-	if(TimeEffectJudgm(calendar_l)==PASS)//ʱ����ȷ������RTC
-	{
-		rtc_time[0] = sec;
-		rtc_time[1] = min;
-		rtc_time[2] = hour;
-		rtc_time[3] = week;
-		rtc_time[4] = day;
-		rtc_time[5] = month;
-		rtc_time[6] = year;
-		R8025T_Write(0,rtc_time,7);
-	}
+//	R8025T_Write(0,time,7);
+	R8025T_write(0,time,7);
 }
 
 //��ȡ�ⲿRTCʱ��
-ErrorStatus Get_Extern_Rtc_Time(__IO sClockBCD * calendar_p)
+void Get_Extern_Rtc_Time(__IO CALENDAR_TIME_T * calendar_p)
 {
 	uint8_t rtc_time[7];
-	sClockBCD	calendar_l;
-	R8025T_Read(0,rtc_time,7);
+//	R8025T_Read(0,rtc_time,7);
+	R8025T_read(0,rtc_time,7);
 	
-	calendar_l.year = rtc_time[6];
-	calendar_l.month = rtc_time[5];
-	calendar_l.day = rtc_time[4];
-	calendar_l.hour = rtc_time[2];
-	calendar_l.min = rtc_time[1];
-	calendar_l.sec = rtc_time[0];
-	
-	if(TimeEffectJudgm(calendar_l)==PASS) //��ȡ��ʱ����ȷ�Ų���ָ��
-	{
-		calendar_p->sec = rtc_time[0];
-		calendar_p->min = rtc_time[1];
+	if(Bcd_2_Hex(rtc_time[0]) < 60)
+		calendar_p->second = rtc_time[0];
+	else
+		calendar_p->second = 0;
+	if(Bcd_2_Hex(rtc_time[1]) < 60)
+		calendar_p->minute = rtc_time[1];
+	else
+		calendar_p->minute = 0;
+	if(Bcd_2_Hex(rtc_time[2]) < 24)
 		calendar_p->hour = rtc_time[2];
+	else
+		calendar_p->hour = 0;
+	calendar_p->week = rtc_time[3];
+	if(Bcd_2_Hex(rtc_time[4]) < 32)
 		calendar_p->day = rtc_time[4];
+	else
+		calendar_p->day = 1;
+	if(Bcd_2_Hex(rtc_time[5]) < 13)
 		calendar_p->month = rtc_time[5];
-		calendar_p->year = rtc_time[6];
+	else
+		calendar_p->month = 0x12;
+	if(Bcd_2_Hex(rtc_time[6]) < 100)
+		calendar_p->year = 0x2000 + rtc_time[6];
+	else
+		calendar_p->year = 0x2015;
 #ifdef RS232_PRINTF		
 	printf("EX_RTC_TIME = %X-%02X-%02X-%02X-%02X-%02X \r\n",calendar_p->year,calendar_p->month,calendar_p->day,
 																														calendar_p->hour,calendar_p->minute,calendar_p->second);
 #endif	
-		
-		return PASS;
-	}else
-	{
-		//�ٶ�һ��
-		R8025T_Read(0,rtc_time,7);
-		calendar_l.year = rtc_time[6];
-		calendar_l.month = rtc_time[5];
-		calendar_l.day = rtc_time[4];
-		calendar_l.hour = rtc_time[2];
-		calendar_l.min = rtc_time[1];
-		calendar_l.sec = rtc_time[0];
-		
-		if(TimeEffectJudgm(calendar_l)==PASS) //��ȡ��ʱ����ȷ�Ų���ָ��
-		{
-			calendar_p->sec = rtc_time[0];
-			calendar_p->min = rtc_time[1];
-			calendar_p->hour = rtc_time[2];
-			calendar_p->day = rtc_time[4];
-			calendar_p->month = rtc_time[5];
-			calendar_p->year = rtc_time[6];
-	#ifdef RS232_PRINTF		
-		printf("EX_RTC_TIME = %X-%02X-%02X-%02X-%02X-%02X \r\n",calendar_p->year,calendar_p->month,calendar_p->day,
-																															calendar_p->hour,calendar_p->minute,calendar_p->second);
-	#endif	
-			
-			return PASS;
-		}else
-		{
-			return FAIL;
-		}
-	}
 }
 
 void Set_Rtc_UpdataInterrupt(void)

--
Gitblit v1.9.3