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 | 123 +++++++++++++++-------------------------
1 files changed, 46 insertions(+), 77 deletions(-)
diff --git a/Function/EXTERN_RTC/extern_rtc.c b/Function/EXTERN_RTC/extern_rtc.c
index 75d5a80..a660541 100644
--- a/Function/EXTERN_RTC/extern_rtc.c
+++ b/Function/EXTERN_RTC/extern_rtc.c
@@ -1,45 +1,13 @@
#include "extern_rtc.h"
#include "i2c.h"
#include "uart.h"
-#include "gpio.h"
-#include "system_general_para.h"
+#include "sundry.h"
+
+#include "ex_rtc.h"
//__IO CALENDAR_TIME_T calendar_g = {0};
-//__IO CALENDAR_TIME_T calendar_test_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)
@@ -104,61 +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
- {
- return FAIL;
- }
}
void Set_Rtc_UpdataInterrupt(void)
--
Gitblit v1.9.3